TypeScript刷LeetCode[5] 144.二叉树的前序遍历

1/9/2021 TypeScriptLeetCode算法二叉树

# 题目

难度:中等

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

示例 1: 示例1

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

示例 2:

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

示例 3:

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

示例 4: 示例4

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

示例 5: 示例4

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

提示:

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

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

# 代码

今天有点累,写了个很丑的递归,明天改改

function preorderTraversal(root: TreeNode | null): number[] {
    let result = []
    solve(root, result)
    return result
}

function solve(root: TreeNode | null, result) {
    if (root) {
        result.push(root.val)
        solve(root.left, result)
        solve(root.right, result)
    }
}

点击刷本题吊打我 (opens new window)