根據一棵樹的前序遍歷與中序遍歷構造二叉樹。
注意:
你可以假設樹中沒有重複的元素。
例如,給出
前序遍歷 preorder =
[3,9,20,15,7]
中序遍歷 inorder =
[9,3,15,20,7]
返回如下的二叉樹:
3/ \
9 20
/ \
15 7
# definition for a binary tree node.
# class treenode:
# def __init__(self, x):
# self.val = x
# self.left = none
# self.right = none
class
solution
:def
buildtree
(self, preorder: list[
int]
, inorder: list[
int])-
> treenode:
defbuild
(preorder,inorder):if
len(preorder)
>0:
head = treenode(preorder[0]
) i =
0while i<
len(inorder)
:if inorder[i]
== preorder[0]
:break
i+=1 left = preorder[
1:i+1]
right = preorder[i+1:
len(preorder)
]if left:
head.left = build(left,inorder[
0:i]
)if right:
head.right = build(right,inorder[i+1:
len(inorder)])
return head
ifnot preorder:
return preorder
return build(preorder,inorder)
Leetcode 從前序與中序遍歷序列構造二叉樹
根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7 definition for a binary tree node...
105 從前序與中序遍歷序列構造二叉樹
如題,根據前序與中序遍歷序列構造二叉樹 整體思路 前序遍歷的第乙個元素,必然是二叉樹的根節點 在中序遍歷中找到前序遍歷第乙個元素的位置 該位置左邊的所有點都是二叉樹的左子樹元素,該位置右邊的所有點都是二叉樹的右子樹元素 思路一 遞迴 字典 由整體思路可以構建子函式用於遞迴,不斷求子樹的左右子樹,直到...
105 從前序與中序遍歷序列構造二叉樹
根據一棵樹的前序遍歷與中序遍歷構造二叉樹。注意 你可以假設樹中沒有重複的元素。例如,給出 前序遍歷 preorder 3,9,20,15,7 中序遍歷 inorder 9,3,15,20,7 返回如下的二叉樹 3 9 20 15 7 def buildtree2 preorder,inorder i...