重建二叉樹(前序,中序序列建樹)

2021-07-26 20:37:32 字數 522 閱讀 3796

題目描述

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。

/**

* definition for binary tree

* struct treenode

* };

*/class solution

}//根據根節點的位置,分成兩個子樹

for(int i=0;i1]);//根節點在第一,所以加1

inl.push_back(in[i]);

}for(int i=index+1;i//左,右子樹的前序和中序序列輸入,遞迴

head->left=reconstructbinarytree(prel,inl);

head->right=reconstructbinarytree(prer,inr);

return head;

}};

總結:使用遞迴!

重建二叉樹(前序和中序)

根據二叉樹的前序輸出和中序輸出重建這顆二叉樹 劍指offer上的一道題,思路 前序遇到的第乙個元素肯定是根節點,先建立乙個根節點,然後將這個值在中序序列中查詢他的位置用leftcount記錄,找到後將該值左面和右邊分別遞迴。include include include includeusing n...

演算法 給定二叉樹前序和中序序列重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。思路 前序序列第乙個肯定為root,設值為n,則在中序序列中n所在位置左邊的肯定是左子樹的元素,右邊的是右子樹的元素,因此,遞迴找r...

重建二叉樹 前序遍歷和中序遍歷

主要程式設計思想 由於前序遍歷第乙個數永遠是根,中序遍歷根左邊是左子樹,右邊衛右子樹。因此,每次找到乙個根節點,前序遍歷就可以分成左子樹序列和右子樹序列,中序遍歷也可以分成左子樹序列和右子樹序列,分別建立左子樹和右子樹,所以是非常典型的遞迴問題 treenode rebuildtree vector...