Leetcode刷题记录——剑指 Offer 07. 重建二叉树

在这里插入图片描述

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

#前序 根 左 右
#中序 左 根 右
#先找根 然后将中序分左右
class Solution:
    def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:
        if preorder == []:
            return None
        root = TreeNode(preorder[0])
        root_index = inorder.index(root.val)
        root.left = self.buildTree(preorder[1:root_index+1],inorder[:root_index])
        root.right = self.buildTree(preorder[root_index+1:],inorder[root_index+1:])

        return root
        
        

猜你喜欢

转载自blog.csdn.net/weixin_41545780/article/details/107577142