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
相关推荐
WSSWWWSSW4 小时前
Numpy科学计算与数据分析:Numpy文件操作入门之数组数据的读取和保存
开发语言·python·数据挖掘·数据分析·numpy
TS的美梦4 小时前
scanpy单细胞转录组python教程(二):单样本数据分析之数据质控
人工智能·python·数据分析·单细胞转录组·scanpy
量化风云5 小时前
『量化人的概率 03』PDF is all you need
python·金融·pdf·概率论·量化交易·量化课程
Q741_1476 小时前
如何判断一个数是 2 的幂 / 3 的幂 / 4 的幂 / n 的幂 位运算 总结和思考 每日一题 C++的题解与思路
开发语言·c++·算法·leetcode·位运算·总结思考
高级测试工程师欧阳6 小时前
python selenium环境安装
python
Mr_Chenph7 小时前
Qdrant Filtering:must / should / must_not 全解析(含 Python 实操)
python·filter·qdrant
我今晚不熬夜7 小时前
使用单调栈解决力扣第42题--接雨水
java·数据结构·算法·leetcode
珍珠是蚌的眼泪7 小时前
LeetCode_哈希表
leetcode·哈希表·快乐数·字母异位词
今夕节度使7 小时前
Axure 11
python
Python当打之年7 小时前
工具分享05 | Python制作PDF合并拆分提取工具V1.0
python·pdf