劍指offer python 第4題 重建二叉樹

2022-04-28 21:12:17 字數 1048 閱讀 5558

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

用遞迴思想

前序遍歷是,中序遍歷是,可以知道1是根節點,則在中序遍歷中,4,7,2都是1的左子樹,5,3,8,6都是1的右子樹;從前序遍歷又可以知道2是1的左子節點,是1的左子樹中「根節點」的存在;3是1的右子節點,是1的右子樹中「根節點」的存在;因而可以不斷遞迴,直至明確每個節點的位置

給出**:

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

if len(pre) ==0:

return

none

if len(pre) == 1:

return

treenode(pre[0])

else

:

res =treenode(pre[0])

res.left = self.reconstructbinarytree(pre[1: tin.index(pre[0]) + 1], tin[: tin.index(pre[0])])

res.right = self.reconstructbinarytree(pre[tin.index(pre[0]) + 1: ], tin[tin.index(pre[0]) + 1: ])

return res

劍指offer python 第2題 替換空格

請實現乙個函式,將乙個字串中的每個空格替換成 20 很容易想到用python裡的字串處理方法,比如replace和re.sub等 首先用sub,coding utf 8 import reclass solution s 源字串 defreplacespace self,s return re.su...

劍指offer(Python)替換空格

這道題要求是 將乙個字串中的空格替換成 20 有多少個空格就替換成多少個 20 例如 hello world 中間有兩個空格,則需要輸出的形式是 hello 20 20world 字串首尾的空格亦算在內。class solution def replacespace self,s return 20...

劍指offer Python 替換空格

請實現乙個函式,將乙個字串中的每個空格替換成 20 python字串,有replace方法,可以實現替換,第乙個引數是要替換的內容,第二個引數是替換的新內容 能夠快速完成,果然python作為一種高階語言,不太適合做演算法 但是 replace 相當於 insert 在替換 時,會將原字串元素的位置...