寫樹算法的套路框架(摘抄labuladong大神)

1.  但是這個算法出現了錯誤,BST 的每個節點應該要小於右邊子樹的所有節點,下面這個二叉樹顯然不是 BST,但是我們的算法會把它判定爲 BST

notBST

2.  出現錯誤,不要慌張,框架沒有錯,一定是某個細節問題沒注意到。我們重新看一下 BST 的定義,root 需要做的不只是和左右子節點比較,而是要整個左子樹和右子樹所有節點比較。怎麼辦,鞭長莫及啊!

3. 很簡單,其實不需要遞歸地搜索兩邊,類似二分查找思想,根據 target 和 root.val 的大小比較,就能排除一邊。我們把上面的思路稍稍改動:

三種情況分析完畢,填入框架,簡化一下代碼:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章