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

2021-09-22 07:56:34 字數 1157 閱讀 8591

題目描述:

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

注意:

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

例如,給出

前序遍歷 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 ...