7 重建二叉樹

2021-09-28 20:03:37 字數 868 閱讀 8311

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。

class

treenode

:def

__init__

(self,x)

: self.val = x

self.right =

none

self.left =

none

class

solution

:def

reconstructbinarytree

(self,pre,tin)

: lenth =

len(pre)

if lenth ==0:

return

none

elif lenth==1:

return treenode(pre)

else

: root = treenode(pre[0]

) root.left = self.reconstructbinarytree(pre[

1:tin.index(pre[0]

)+1]

,tin[

:tin.index(pre[0]

)]) root.right = self.reconstructbinarytree(pre[tin.index(pre[0]

)+1:

],tin[tin.index(pre[0]

)+1:

])return root

採用遞迴思想

7 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。前序遍歷的確定根節點,可以根據此點分別找到左子樹跟右子樹的前序遍歷序列和中序遍歷序列,通過遞迴再分別構建子樹的左子樹和右子樹。如下 ...

7 重建二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。複習知識點 二叉樹的遍歷 前中後序指的是根節點的順序,左總在右的前面 前序遍歷的順序是 根節點,左子節點 左子樹 右子節點 右子樹 ...

劍指 7 重建二叉樹

題目描述 演算法分析 提交 class solution treenode reconstructbinarytreecore vector iterator start pre,vector iterator end pre,vector iterator start vin,vector ite...