Python | Leetcode Python题解之第105题从前序与中序遍历序列构造二叉树

题目:

题解:

python 复制代码
class Solution:
    def buildTree(self, preorder: List[int], inorder: List[int]) -> TreeNode:
        if not preorder:
            return None

        root = TreeNode(preorder[0])
        stack = [root]
        inorderIndex = 0
        for i in range(1, len(preorder)):
            preorderVal = preorder[i]
            node = stack[-1]
            if node.val != inorder[inorderIndex]:
                node.left = TreeNode(preorderVal)
                stack.append(node.left)
            else:
                while stack and stack[-1].val == inorder[inorderIndex]:
                    node = stack.pop()
                    inorderIndex += 1
                node.right = TreeNode(preorderVal)
                stack.append(node.right)

        return root
相关推荐
databook2 小时前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室2 小时前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三4 小时前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试
用户2519162427117 小时前
Python之语言特点
python
刘立军8 小时前
使用pyHugeGraph查询HugeGraph图数据
python·graphql
数据智能老司机11 小时前
精通 Python 设计模式——创建型设计模式
python·设计模式·架构
数据智能老司机12 小时前
精通 Python 设计模式——SOLID 原则
python·设计模式·架构
c8i14 小时前
django中的FBV 和 CBV
python·django
c8i14 小时前
python中的闭包和装饰器
python
这里有鱼汤17 小时前
小白必看:QMT里的miniQMT入门教程
后端·python