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
相关推荐
Remember_9932 分钟前
【数据结构】Java数据结构深度解析:栈(Stack)与队列(Queue)完全指南
java·开发语言·数据结构·算法·spring·leetcode·maven
@zulnger2 分钟前
Django 模型
后端·python·django
huwei85318 分钟前
python设计通用表格类 带右键菜单
开发语言·windows·python
计算机毕业编程指导师18 分钟前
【计算机毕设选题】基于Spark的拉勾网招聘数据分析系统源码,Python+Django全流程
大数据·hadoop·python·spark·django·招聘·拉勾网
duyinbi751722 分钟前
TOOD_R50_FPN_Anchor-Based_1x_COCO_列车悬挂部件检测分类实战
python
努力学算法的蒟蒻23 分钟前
day59(1.18)——leetcode面试经典150
算法·leetcode·职场和发展
学习3人组24 分钟前
大模型轻量化调优(昇腾平台方向)岗位技术名词拆解
人工智能·python
知乎的哥廷根数学学派26 分钟前
基于物理引导和不确定性量化的轻量化神经网络机械退化预测算法(Python)
人工智能·pytorch·python·深度学习·神经网络·算法·机器学习
程序员-King.28 分钟前
day146—递归—验证二叉搜索树(LeetCode-98)
算法·leetcode·二叉树·递归
iAkuya30 分钟前
(leetcode)力扣100 45二叉树的右视图(dfs,bfs)
leetcode·深度优先·宽度优先