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
相关推荐
田梓燊6 分钟前
leetcode 142
android·java·leetcode
2301_7641505611 分钟前
Pandas GroupBy:将分组数据聚合为列表并赋值到新列
jvm·数据库·python
NotFound48612 分钟前
c++ 逆向工程ida pro c++如何使用ida pro插件和脚本
jvm·数据库·python
qq_1898070314 分钟前
CSS如何根据浏览器支持引入样式_利用@supports进行条件加载
jvm·数据库·python
qq_3345635517 分钟前
CSS如何实现移动端文字转阴影效果_通过text-stroke模拟描边
jvm·数据库·python
m0_3776182320 分钟前
mysql数据库如何通过调整读取策略提升性能_开启innodb_read_ahead
jvm·数据库·python
2301_8148098625 分钟前
MongoDB开启认证后应用程序出现断连假死现象
jvm·数据库·python
m0_6784854525 分钟前
mysql如何对比备份数据与线上数据_编写自动化校验脚本
jvm·数据库·python
_深海凉_26 分钟前
LeetCode热题100-最大数(179)
算法·leetcode·职场和发展
闲云一鹤29 分钟前
Python 入门(四)- Openpyxl 操作 Excel 教程
python·excel