binary_tree_preorder_traversal
binary_tree_preorder_traversal.go 源码
package leetcode
//二叉树的前序遍历
//递归
func preorderTraversal(root *TreeNode) []int {
var res []int
preHelper(root, &res)
return res
}
func preHelper(node *TreeNode, res *[]int) {
if node == nil {
return
}
*res = append(*res, node.Val)
preHelper(node.Left, res)
preHelper(node.Right, res)
}
//迭代
func preorderTraversal2(root *TreeNode) []int {
var res []int
if root == nil {
return res
}
stack := []*TreeNode{root}
for len(stack) > 0 {
node := stack[len(stack)-1]
res = append(res, node.Val)
if node.Left != nil {
stack = append(stack, node.Left)
}
if node.Right != nil {
stack = append(stack, node.Right)
}
}
return res
}
你可能感兴趣的文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦