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

2021-10-23 07:39:18 字數 1239 閱讀 6459

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

注意:

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

例如,給出

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