Construct Binary Tree from Preorder (Postorder) and Inorder Traversal

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

同上,自行修改算法即可

發佈了68 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章