zoukankan      html  css  js  c++  java
  • LeetCode 144. 二叉树的前序遍历

    144. 二叉树的前序遍历

    Difficulty: 中等

    给你二叉树的根节点 root ,返回它节点值的 前序遍历。

    示例 1:

    输入:root = [1,null,2,3]
    输出:[1,2,3]
    

    示例 2:

    输入:root = []
    输出:[]
    

    示例 3:

    输入:root = [1]
    输出:[1]
    

    示例 4:

    输入:root = [1,2]
    输出:[1,2]
    

    示例 5:

    输入:root = [1,null,2]
    输出:[1,2]
    

    提示:

    • 树中节点数目在范围 [0, 100]
    • -100 <= Node.val <= 100

    进阶:递归算法很简单,你可以通过迭代算法完成吗?

    Solution

    前序遍历:DLR

    迭代

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def preorderTraversal(self, root: TreeNode) -> List[int]:
            if not root: return []
            stack, res = [root], []
            
            while stack:
                node = stack.pop()
                if node:
                    res.append(node.val)
                    stack.append(node.right)
                    stack.append(node.left)
            return res
    

    递归

    class Solution:
        def preorderTraversal(self, root: TreeNode) -> List[int]:
            if not root:
                return []
            else:
                d = [root.val]
                l = self.preorderTraversal(root.left)
                r = self.preorderTraversal(root.right)
                return d + l + r
    
  • 相关阅读:
    CentOS查找目录或文件
    vim使用
    解决Bat脚本中包含中文,运行乱码
    Window系统下搭建GIT本地服务器
    Django1.6 运行manage.py 报错解决办法(ImportError)
    centos7下使用yum安装pip
    hiho_1048_状态压缩2
    hiho_1044 状态压缩
    hiho_1041 国庆出游
    hdu_3555 bomb
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14106003.html
Copyright © 2011-2022 走看看