【leetcode】106: 从中序与后序遍历序列构造二叉树

题目如下:

 

 本题目的思路基本和105题的思路是相同的,主要要注意进行divide和conqure的时候,index的下标要调整正确,记住python是左闭右开的。

代码如下:

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def buildTree(self, inorder: List[int], postorder: List[int]) -> TreeNode:
        if not inorder or not postorder:
            return 
        root=TreeNode(postorder[-1])
        index=inorder.index(root.val)

        root.left=self.buildTree(inorder[:index],postorder[:index])
        root.right=self.buildTree(inorder[index+1:],postorder[index:-1])
        return root

 

posted @ 2021-10-09 21:43  Geeksongs  阅读(23)  评论(0编辑  收藏  举报

Coded by Geeksongs on Linux

All rights reserved, no one is allowed to pirate or use the document for other purposes.