從前序與中序遍歷序列構造二叉樹

2021-10-06 14:20:47 字數 1217 閱讀 7656

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

解題思路:

//[left,right)這個區間就表示當前preorder[index]這個結點對應的子樹的中序遍歷結果

private treenode buildtreehelper

(int

preorder,

int[

] inorder,

int left,

int right)

if(index>preorder.length)

//根據當前結點的值建立出根節點

treenode root=

newtreenode

(preorder[index]);

index++

;//節點建立完畢,就index++準備處理下乙個節點

//根據該節點在中序遍歷結果中的位置,把inorder陣列劃分成兩個部分

int pos=

find

(inorder,left,right,root.val)

;//[left,pos)表示當前左子樹的中序遍歷結果

//[pos+1,right)表示當前root右子樹的中序遍歷結果

root.left=

buildtreehelper

(preorder,inorder,left,pos)

; root.right=

buildtreehelper

(preorder,inorder,pos+

1,right)

;return root;

}private

intfind

(int

inorder,

int left,

int right,

int val)

}return-1;}}

從前序與中序遍歷序列構造二叉樹

題目描述 if inbegin inend 區間只有乙個結點,就是根結點 區間正常 int rootindex inbegin while rootindex inend 用前序的根劃分中序為兩個子區間 else 遞迴建立左子樹 root left buildtree preorder,pindex...

從前序與中序遍歷序列構造二叉樹

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

從前序與中序遍歷序列構造二叉樹

根據一棵樹的前序遍歷與中序遍歷構造二叉樹。definition for a binary tree node.public class treenode class solution int rootidx left while rootidx right rootidx 前序 3 9 20 15 ...