4 劍指offer第四題(python)

2021-09-25 05:45:19 字數 910 閱讀 5046

問題:

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

**:

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

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution:

# 返回構造的treenode根節點

def reconstructbinarytree(self, pre, tin):

# write code here

if len(pre)==0:

return none

elif len(pre)==1:

return treenode(pre[0])

else:

tree=treenode(pre[0])

left_pre=pre[1:tin.index(pre[0])+1]

left_tin=tin[:tin.index(pre[0])]

right_pre=pre[tin.index(pre[0])+1:]

right_tin=tin[tin.index(pre[0])+1:]

tree.left=self.reconstructbinarytree(left_pre,left_tin)

tree.right=self.reconstructbinarytree(right_pre,right_tin)

return tree

占用記憶體:5752k

劍指offer第四題

輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建出該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重複的數字。例如輸入前序遍歷序列和中序遍歷序列,則重建二叉樹並返回。通過root結點可以把中序遍歷分成兩部分。可以知道左子樹的個數和右子樹的個數。從而求出前序遍歷和中序遍歷相對應的左子樹和右子樹。並通...

劍指Offer第三第四道題

第三題 輸入乙個鍊錶,從尾到頭列印鍊錶每個節點的值。思路 始終從列表的第一項插入資料。coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回從尾部到頭部的列表值序列,例如 1,2,...

劍指offer leetcode 第四題

輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 輸入 head 1,3,2 輸出 2,3,1 definition for singly linked list.public class listnode class solution stack.push temp.val tem...