Construct Binary Tree from Preorder and Inorder Traversal
通過二叉樹的 前序遍歷序列 和 中序遍歷序列 重構二叉樹
步驟:
1、遍歷前序遍歷序列,每次遍歷一個值,創建一個節點,並將節點壓入棧,新創建的節點連接爲棧頂節點的左孩子節點(如果第2步中的記錄pop的節點非空,那麼連接爲該記錄節點的右孩子)
2、每次壓入新節點後需要進行一次比較,棧頂節點的值與中序遍歷開頭比較,如果相等,那麼棧pop,中序遍歷開頭向後移動一位(後面一位作爲開頭),之後再次比較,直到不相等爲止,如果存在一次棧pop,那麼用一個變量記錄之,直到最後一次pop,這個變量最終爲最後一次pop的節點,如果沒有pop,那麼該節點賦值爲空
3、反覆進行1,2步,直到遍歷完前序遍歷序列,那麼二叉樹創建完畢,返回第一次創建的節點(那個節點爲 root 哦,一開始要存儲一下,此處爲細節處理)
Construct Binary Tree from Postorder and Inorder Traversal
同上,自行修改算法即可