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
相关推荐
小柯南敲键盘5 分钟前
电商图片翻译工具推荐,批量处理主图视频字幕,免费试用
大数据·人工智能·python·音视频
Nil2087 分钟前
leetcode 160相交链表
算法·leetcode·链表
比高创意品牌策划设计1 小时前
零售卖场设计软件用CAD还是SketchUp还是酷家乐
python
迷迭香yy2 小时前
行业板块轮动因子实战从板块资金到因子建模的本地化Python全流程
数据库·人工智能·python
W_326002 小时前
Python文件进阶:一维数据与 CSV 文件读写
开发语言·python
Tisfy3 小时前
LeetCode 3090.每个字符最多出现两次的最长子字符串:二重循环 / 滑动窗口
算法·leetcode·字符串·题解·模拟·双指针·滑动窗口
yaoxin5211233 小时前
497. Java 反射 - 使用反射读取注解
java·开发语言·python
2019一路前行3 小时前
Python 函数式编程
开发语言·python
专注仿真4 小时前
问答大模型技术方案算法实现-RAPTOR树构建算法与BEG集成使用
python·算法
从小就看凹凸曼^o^5 小时前
Python基础5 - 字典与集合:(1)字典
开发语言·python