輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。
/**
* definition for binary tree
* struct treenode
* };
*/class
solution
int length = pre.
size()
;return
reconstructrecusively
(pre, pre.
begin()
, pre.
begin()
+length-
1, vin, vin.
begin()
, vin.
begin()
+length-1)
;}treenode*
reconstructrecusively
(vector<
int> pre, vector<
int>
::iterator prestart, vector<
int>
::iterator preend,
vector<
int> vin, vector<
int>
::iterator vinstart, vector<
int>
::iterator vinend)
int leftlength = vinroot - vinstart;
if(leftlength >0)
if(vinend - vinroot >0)
return root;}}
;
7 重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。class treenode def init self,x self.val x self.right none self.lef...
7 重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。前序遍歷的確定根節點,可以根據此點分別找到左子樹跟右子樹的前序遍歷序列和中序遍歷序列,通過遞迴再分別構建子樹的左子樹和右子樹。如下 ...
7 重建二叉樹
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。複習知識點 二叉樹的遍歷 前中後序指的是根節點的順序,左總在右的前面 前序遍歷的順序是 根節點,左子節點 左子樹 右子節點 右子樹 ...