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