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
相关推荐
银行数字化转型导师坚鹏34 分钟前
如何设计优秀的企业微信私域运营实战培训方案
大数据·python·企业微信
jerryinwuhan1 小时前
最短路径问题总结
开发语言·人工智能·python
shelter -唯1 小时前
京东手机项目:手机受欢迎的影响因素分析
python·机器学习·智能手机
kobe_OKOK_1 小时前
Django ORM 字段查询表达式(Field lookup expressions)
后端·python·django
C嘎嘎嵌入式开发1 小时前
(1)100天python从入门到拿捏
开发语言·python
过往入尘土1 小时前
服务端与客户端的简单链接
人工智能·python·算法·pycharm·大模型
zycoder.2 小时前
力扣面试经典150题day1第一题(lc88),第二题(lc27)
算法·leetcode·面试
软件开发技术深度爱好者2 小时前
用python制作相册浏览小工具
开发语言·python
沐曦可期2 小时前
标准编码与算法
javascript·python
Dream it possible!2 小时前
LeetCode 面试经典 150_哈希表_存在重复元素 II(46_219_C++_简单)
leetcode·面试·散列表