劍指offer 重構二叉樹 樹 python

2022-03-26 17:42:54 字數 1037 閱讀 3393

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

思路:先找出前序遍歷的第乙個為root。然後查詢該值在中序遍歷中的位置設為index 

使用遞迴:前序遍歷中左子樹長度為除了根節點到(1:index+1) 同時中序遍歷左子樹長度為(:index)

前序遍歷中右子樹長度為除了根節點到(index+1:) 同時中序遍歷右子樹長度為(index+1:)因為index是root

#

-*- 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

#pre是前序遍歷 tin是中序遍歷

劍指offer 重構二叉樹

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。1.前序遍歷 前序遍歷的規則 先根節點,後左子樹,再右子樹 2.中序遍歷 中序遍歷的規則 先左子樹,後根節點,再右子樹 3.求重構二...

劍指Offer 重構二叉樹

題目 輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建出如下圖所示的二叉樹並輸出它的頭結點。在二叉樹的前序遍歷序列中,第乙個數字總是樹的根結點的值。但在中序遍歷序列中,根結點的值在序列的中間,左...

劍指Offer 重構二叉樹

給定二叉樹的先序遍歷和中序遍歷 重新生成二叉樹 public class reconstructbinarytree public treenode reconstructbinarytree int pre int in 遞迴得到先序遍歷起止點為prestart和preend,中序遍歷起止點為in...