LeetCode總結 -- 樹的構造篇
阿新 • • 發佈:2018-11-16
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
這篇總結主要介紹樹中比較常見的一類題型--樹的構造。其實本質還是用遞迴的手法來實現,但是這類題目有一個特點,就是它是構建一棵樹,而不是給定一棵樹,然後進行遍歷,所以實現起來思路上有點逆向,還是要練習一下。LeetCode中關於樹的構造的題目有以下幾道:Convert Sorted Array to Binary Search Tree
Convert Sorted List to Binary Search Tree
Construct Binary Tree from Preorder and Inorder Traversal
Construct Binary Tree from Inorder and Postorder Traversal
先來看看最簡單的 Convert Sorted Array to Binary Search Tree,陣列本身是有序的,那麼我們知道每次只要取中點作為根,然後遞迴構建對應的左右子樹就可以了,遞迴的寫法跟常規稍有不同,就是要把根root先new出來,然後它的左節點接到遞迴左邊部分的返回值,右節點接到遞迴右邊部分的返回值,最後將root返回回去。這個模板在樹的構造中非常有用,其他幾道題也都是按照這個來實現。
接下來是
最後是
這篇總結主要介紹了LeetCode中四個樹的構造的題目,比較統一的思路就是在遞迴中建立根節點,然後找到將元素劈成左右子樹的方法,遞迴得到左右根節點接上建立的根然後返回。方法還是比較具有模板型的,不熟悉的朋友可以練習一下哈。