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
相关推荐
Adios7945 小时前
设置交集大小至少为2
数据结构·算法·leetcode
love530love5 小时前
OpenClaw Windows Companion 桌面客户端 连接 LM Studio 完整配置指南
人工智能·windows·python·openclaw
cui_ruicheng7 小时前
Python从入门到实战(十六):多进程编程
开发语言·python
_Jimmy_9 小时前
FastAPI + SQLAlchemy全局事务管理
python·fastapi
用户8356290780519 小时前
如何使用 Python 在 Excel 中添加、编辑和删除超链接
后端·python
AC赳赳老秦11 小时前
企业工商公开信息采集分析:OpenClaw 批量查询企业工商信息,生成企业画像报告
大数据·开发语言·python·自动化·php·deepseek·openclaw
FoldWinCard11 小时前
D6 Python 基础语法 --- 保留关键字
开发语言·python
暮暮祈安12 小时前
Celery 新手入门指南
java·数据库·python·flask·httpx
JustNow_Man12 小时前
每日高频场景英文口语
python
风吹心凉13 小时前
python3基础2026.7.22
开发语言·python