根據一棵樹的前序遍歷與中序遍歷構造二叉樹。
注意:你可以假設樹中沒有重複的元素。
例如,給出
前序遍歷 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...