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
相关推荐
fanruitian2 分钟前
python 装饰器 闭包
python
凯瑟琳.奥古斯特10 分钟前
力扣1015C++解法技巧
c++·算法·leetcode·链表·职场和发展
泡茶喝茶写代码17 分钟前
A股量化策略回测实战:从行情数据到绩效评估(第 13 篇):放量突破策略
java·python·股票数据api·股票数据api接口·股票量化数据api·股票量化数据接口
文丑颜不良啊21 分钟前
LeetCode626~650题目解析
java·leetcode
cxyxixiy30 分钟前
数智码力:数据核对不用人工比对,Python 快速完成多表格差异校验
开发语言·python·学习
LMT流氓兔37 分钟前
第五单元——第11课:自动测试“拒绝后绝不能写入”
数据库·人工智能·python·langchain
ratel️1 小时前
小墨析 · Office Agent 日常办公不烧心
python·langchain·word·excel·fastapi·js·ppt
文丑颜不良啊1 小时前
LeetCode601~625题目解析
java·leetcode
MrGet1 小时前
一步一步学Python(三):文件读写
python
文丑颜不良啊2 小时前
LeetCode651~675题目解析
java·leetcode