劍指offer全集詳解python版 重建二叉樹

2021-09-09 05:39:31 字數 1033 閱讀 6828

題目描述

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

對於先序來說,第乙個元素就是樹的根節點,第二個節點就是根的左子節點,我們只需要知道右子節點就可以遞迴地做這件事了。而中序遍歷恰好告訴了我們根節點地位置,因而也就告訴了我們在先序遍歷中右子節點地位置。

# -*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

:# 返回構造的treenode根節點

defreconstructbinarytree

(self, pre, tin)

:# write code here

iflen

(pre)==0

:return

none

iflen

(pre)==1

:return treenode(pre[0]

)else

: flag = treenode(pre[0]

) flag.left = self.reconstructbinarytree(pre[

1:tin.index(pre[0]

)+1]

,tin[

:tin.index(pre[0]

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

)+1:

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

)+1:

])return flag

劍指offer全集詳解python版 跳台階

題目描述 乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 標準的dp coding utf 8 class solution def jumpfloor self,number write code here if number 1...

劍指offer題目詳解

1.目錄順序按照acwing 中 劍指offer 打卡活動 題目順序編寫 2.標註 表示比較難的題目 找出陣列中重複的數字 不修改陣列找出重複的數 二維陣列中的查詢 替換空格 從尾到頭列印鍊錶 重建二叉樹 二叉樹的下乙個節點 用兩個棧實現佇列 斐波那契數列 旋轉陣列的最小數字 矩陣中的路徑 機械人的...

劍指offer 包含min函式的棧(python)

定義棧的資料結構,請在該型別中實現乙個能夠得到棧最小元素的min函式。coding utf 8 class solution def init self self.stack self.min stack def push self,node 如果min stack為空 或者當前結點值小於等於棧最後...