題目描述
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。
對於先序來說,第乙個元素就是樹的根節點,第二個節點就是根的左子節點,我們只需要知道右子節點就可以遞迴地做這件事了。而中序遍歷恰好告訴了我們根節點地位置,因而也就告訴了我們在先序遍歷中右子節點地位置。
# -*- 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為空 或者當前結點值小於等於棧最後...