排序二叉樹的中序遍歷序列是有序序列_LeetCode-105 從前序與中序遍歷序列構造二叉樹...
阿新 • • 發佈:2020-12-15
技術標籤:排序二叉樹的中序遍歷序列是有序序列由雙遍歷序列構造二叉樹
題目:根據一棵樹的前序遍歷與中序遍歷構造二叉樹。
注意:
你可以假設樹中沒有重複的元素。
第一次遇到構造二叉樹的題目,且根據前序和中序遍歷的結果重構原樹。也能想到遞迴構造左、右子樹,但卡在瞭如何尋找左、右子樹的範圍,以及遞迴引數的選擇。
解法一:遞迴法
前序遍歷中首個節點必為根節點root,將inorder分成了左leftsubtree、右rightsubtree子樹兩部分;
分別進入左、右子樹,preorder 中儲存的為左子樹的根節點,將leftsubtree繼續分割。進而形成遞迴。
難點在於:
- 如何表示leftsubtree、rightsubtree ?
- 根節點的index索引如何設定?
直接看程式碼:
# Definition for a binary tree node.