Python | Leetcode Python题解之第144题二叉树的前序遍历

题目:

题解:

python 复制代码
class Solution:
    def preorderTraversal(self, root: TreeNode) -> List[int]:
        res = list()
        if not root:
            return res
        
        p1 = root
        while p1:
            p2 = p1.left
            if p2:
                while p2.right and p2.right != p1:
                    p2 = p2.right
                if not p2.right:
                    res.append(p1.val)
                    p2.right = p1
                    p1 = p1.left
                    continue
                else:
                    p2.right = None
            else:
                res.append(p1.val)
            p1 = p1.right
        
        return res
相关推荐
wltx16889 小时前
谷歌SEO如何做插床优化?
大数据·人工智能·python
khalil10209 小时前
代码随想录算法训练营Day-46 动态规划13 | 647. 回文子串、516.最长回文子序列、动态规划总结
数据结构·c++·算法·leetcode·动态规划·回文子串·回文子序列
2301_781571429 小时前
JavaScript中Object-getOwnPropertySymbols获取方法
jvm·数据库·python
he___H9 小时前
算法快与慢--哈希+双指针
算法·leetcode·哈希算法
倒霉熊dd10 小时前
Python学习(第一部分 语法与数据结构/核心基础)
大数据·python·学习·pip
仅此,10 小时前
deep agent整合 DeepSeek 记录
python·langchain·agent·deep agent sdk
ftpeak10 小时前
AI开发之LangGraph教程6~自定义状态 (Custom State)
python·ai·langchain·langgraph
凯瑟琳.奥古斯特11 小时前
力扣2760 C++滑动窗口解法
数据结构·c++·算法·leetcode·职场和发展
_深海凉_11 小时前
LeetCode热题100-不同路径
算法·leetcode·职场和发展
m0_7381207211 小时前
渗透测试——Djinn1靶场详细渗透提权过程讲解(绕过黑名单限制,命令执行反弹shell,pyc反编译,代码白盒分析,python沙盒逃逸)
开发语言·python·php