題目描述:
根據一棵樹的前序遍歷與中序遍歷構造二叉樹。
注意:
你可以假設樹中沒有重複的元素。
例如,給出
前序遍歷 preorder = [3,9,20,15,7]
中序遍歷 inorder = [9,3,15,20,7]
返回如下的二叉樹:
"""#思路:使用前序遍歷結果尋找根節點;使用中序遍歷結果區分左右子樹
if len(preorder) == 0:
return
root = treenode(preorder[0])
index = inorder.index(root.val)
left_preorder,left_inorder = preorder[1:index+1],inorder[:index]
right_preorder,right_inorder = preorder[index+1:],inorder[index+1:]
root.left = self.buildtree(left_preorder,left_inorder)
root.right = self.buildtree(right_preorder,right_inorder)
return root
菜鳥一枚,**僅供參考,如有問題,望指正~
從前序與中序遍歷序列構造二叉樹
題目描述 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 ...