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
相关推荐
deepxuan13 分钟前
Day1--python三大库-Pandas
人工智能·python·pandas
嫂子的姐夫14 分钟前
042-spiderbuf第C7题
爬虫·python·逆向
2403_8355684724 分钟前
自然语言处理(NLP)入门:使用NLTK和Spacy
jvm·数据库·python
剑穗挂着新流苏31228 分钟前
Pytorch加载数据
python·深度学习·transformer
qq_4523962329 分钟前
【Python × AI】多智能体协作:从 AutoGPT 到 CrewAI 的组织进化论
大数据·人工智能·python·ai
guhy fighting1 小时前
pycharm 切换版本和窗口cmd看到的版本不一致问题解决
ide·python·pycharm
今儿敲了吗1 小时前
python基础学习笔记第六章——函数进阶
笔记·python·学习
x_xbx1 小时前
LeetCode:83. 删除排序链表中的重复元素
算法·leetcode·链表
码码哈哈0.02 小时前
LangChain 快速入门(从0到可用)
开发语言·python·langchain
2301_776508722 小时前
用Python生成艺术:分形与算法绘图
jvm·数据库·python