【简单】144. 二叉树的前序遍历

2023-08-23 08:22:23 浏览数 (1)

题目

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

示例 1:

代码语言:javascript复制
输入:root = [1,null,2,3]
输出:[1,2,3]

示例 2:

输入:root = [] 输出:[] 示例 3:

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

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

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

解法

其实这种题目不难,我感觉烦的是数据结构,题目里面给个list,搞得我不好测试。 比如之前的链表,非得让我自己写个list和链表的转换才好进行调试。

代码语言:javascript复制
from typing import Optional, List

from alo.common import TreeNode


class Solution:
    def preorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        ans = []
        stack = [root]
        while stack:
            node = stack.pop()
            if node:
                ans.append(node.val)
                if node.right:
                    stack.append(node.right)
                if node.left:
                    stack.append(node.left)
        return ans


if __name__ == '__main__':
    s = Solution()
    s.preorderTraversal(TreeNode(1, None, TreeNode(2, TreeNode(3), None)))

0 人点赞