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

2021-10-05 13:43:09 字數 1053 閱讀 7237

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

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

例如,給出

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

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

返回如下的二叉樹:

3

/ \9 20

/ \

15 7

int preindex = 0;

public treenode2 buildtreechild(int preorder, int inorder,int inbegin,int inend)

//找到前序遍歷的根結點root

treenode2 root = new treenode2(preorder[preindex]);

//找root在中序遍歷的下標

int rootindex = findindexofinorder(inorder,inbegin,inend,preorder[preindex]);

//前序遍歷 ++

preindex++;

root.left = buildtreechild(preorder ,inorder,inbegin, rootindex-1);

root.right = buildtreechild(preorder ,inorder,rootindex+1,inend);

return root;

}public int findindexofinorder(int inorder,int inbegin, int inend,int val)

}return -1;

}public treenode2 buildtree2(int preorder, int inorder)

if(preorder.length == 0 || inorder.length ==0)

return buildtreechild(preorder,inorder,0,inorder.length-1);

}

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

根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。leetcode題目鏈結 我們知道,前序遍歷的第乙個元素是根節點,用根節點在中序遍歷的結果陣列中找到該元素下標pos,就可以將中序遍歷的結果陣列分成兩個部分 left,pos 和 pos 1,right 在這兩部分中不斷遞...

根據先序遍歷的結果建立一棵樹 D S

根據先序遍歷的結果建立一棵樹 根據先序遍歷的結果還原一棵樹 則該樹是不確定的 例如 先序遍歷的結果abc 有兩種形式 如果要還原一棵樹,除了要知道先序遍歷的結果,還需要知道樹的位置。如果用 表示空樹,則左邊的二叉樹為 ab c 而右邊的二叉樹為 abc 已只先序遍歷的結果,在建立樹時,先建立根節點 ...

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

根據一棵樹的中序遍歷與後序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 中序遍歷 inorder 9,3,15,20,7 後序遍歷 postorder 9,15,7,20,3 返回如下的二叉樹 3 9 20 15 7public int postindex 0 public tre...