姊妹篇:

leetcode-94 二叉树的中序遍历

leetcode-145 二叉树的后序遍历



144. 二叉树的前序遍历

难度: 中等



递归解法:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
* Definition for a binary tree node.
* type TreeNode struct {
* Val int
* Left *TreeNode
* Right *TreeNode
* }
*/
func preorderTraversal(root *TreeNode) []int {


var res []int = make([]int, 0)

if root == nil {
return res
}

res = append(res,root.Val)


//递归调用,遍历左节点;temp用来承接返回的值
temp := preorderTraversal(root.Left)
res = append(res,temp...)

//遍历右节点
temp = preorderTraversal(root.Right)
res = append(res,temp...)

return res

}




迭代解法:


参考