構造二叉樹

2021-09-27 06:26:46 字數 734 閱讀 2804

題目

根據一棵樹的前序遍歷與中序遍歷構造二叉樹。

注意:你可以假設樹中沒有重複的元素。

例如,給出

前序遍歷 preorder = [3,9,20,15,7]

中序遍歷 inorder = [9,3,15,20,7]

返回如下的二叉樹:3/

9 20

/ 15 7

理解從前序中可以直接找到根節點,然後從中序中找到這個根節點並記錄它的下標,這樣在中序中,這個結點的左邊的數都是它左子樹上的,它的右邊的數都是它右子樹上的,然後從前序序列中遍歷到下標的長度,這段期間的數字就是新的乙個前序序列,繼續第乙個是根節點,重複上面的過程。同理,右子樹也是一樣的。

**/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

* }*/class solution {

public treenode buildtree(int inorder, int postorder) {

if(postorder.length==0)

return null;

int a=postorder[postorder.length-1];//後續的最後乙個結點是根節點

int b;

for(b=0;b注意:不能由前序和後續構造二叉樹,因為這兩個只能找到根節點,左右子樹不唯一。

二叉樹構造

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。public int findvalptr vectorarr,int val return i 查詢子樹的根節點 publi...

構造二叉樹

例 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 二叉樹 3 9 20 15 7 definition for a binary tree node.struct treenode class solution treenode buildtr...

構造二叉樹

105.從前序與中序遍歷序列構造二叉樹 根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7 definition fo...