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

给你二叉树的根节点 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

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

代码参考:

package main

import "fmt"

func main() {
    root := &TreeNode{Val: 4}
    root.Left = &TreeNode{Val: 9}
    root.Right = &TreeNode{Val: 0}
    root.Left.Left = &TreeNode{Val: 5}
    root.Left.Right = &TreeNode{Val: 1}

    //    4
    //   / \
    //  9   0
    // / \
    // 5   1
    fmt.Println(preorderTraversal(root)) // [4 9 5 1 0]
}

func preorderTraversal(root *TreeNode) []int {
    var nums []int
    traverse(root, &nums)
    return nums
}

func traverse(root *TreeNode, nums *[]int) {
    if root == nil {
        return
    }
    *nums = append(*nums, root.Val)
    traverse(root.Left, nums)
    traverse(root.Right, nums)
}

// TODO
// iteration
最后编辑: kuteng  文档更新时间: 2021-06-05 10:16   作者:kuteng