題目:
前序遍歷 preorder = [3,9,20,15,7]
中序遍歷 inorder = [9,3,15,20,7]
解題思路:
前序遍歷第一遍歷的點總是後面的根節點,而中序遍歷根節點是在「中間」的位置.如例子,整棵樹根節點肯定是3,而在中序遍歷中,3的左邊肯定左子樹,右邊是右子樹。這樣中序遍歷分成分成【根節點3】【15,20,7】三個部分,前序遍歷也分成【根節點3】【20,15,7】三個部分,將3作為根節點,和、【15,20,7】和【20,15,7】遞迴呼叫,就可以確定左右子樹的根節點。
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
treenode* res=
dfs(preorder,
0,prer,inorder,
0,inr)
;return res;
} treenode*
dfs(vector<
int>
&pre,
int prel,
int prer,vector<
int>
&ino,
int inl,
int inr)
else
return
null;}
};
Leetcode 從前序與中序遍歷序列構造二叉樹
根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7 definition for a binary tree node...
從前序 中序或者後序 中序序列中恢復二叉樹過程
給出前序遍歷和中序遍歷,如何繪製出二叉樹 如果給出遍歷產生的一串字元,不容易確定各個字元在樹中的具體位置,因而需要兩個遍歷串相結合才能畫出一棵二叉樹。如,給出前序遍歷adfghklpqrwz,中序遍歷gfhkdlawrqpz。其具體尋找過程如下 其中矩形內表示當前節點的左右子樹的元素,圓圈內為當前節...
從前序與中序遍歷構造二叉樹
從前序與中序遍歷序列構造二叉樹 根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 前序遍歷 preorder 3 9,20 15,7 中序遍歷 inorder 9 3,15 20,7 返回如下的二叉樹 3 9 20 157 definition for a b...