题解 | #二叉树的前序遍历#
二叉树的前序遍历
https://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635
package main import ( . "nc_tools" ) /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return int整型一维数组 */ func preorderTraversal(root *TreeNode) []int { // 迭代 if root == nil { return nil } result := make([]int, 0) stack := []*TreeNode{root} for len(stack) > 0 { node := stack[len(stack)-1] stack = stack[:len(stack)-1] result = append(result, node.Val) if node.Right != nil { stack = append(stack, node.Right) } if node.Left != nil { stack = append(stack, node.Left) } } return result } /** 递归 *func preorderTraversal(root *TreeNode) []int { // write code here result := make([]int, 0) var preorder func(node *TreeNode) preorder = func(node *TreeNode) { if node == nil { return } result = append(result, node.Val) preorder(root.Left) preorder(root.Right) } preorder(root) return result } */