题目
给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 。
n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔。
解题代码:
func preorder(root *Node) []int {
var ans []int
var def func(n *Node)
def = func(n *Node) {
if n == nil{
return
}
ans = append(ans, n.Val)
if n.Children != nil {
for _, child := range n.Children {
def(child)
}
}
}
def(root)
return ans
}
最初的代码:
单个测试案例可以通过,但因为ans是全局变量,当多个测试案例一起测试时,答案会粘连在一起
var ans []int
func preorder(root *Node) []int {
if root == nil{
return nil
}
ans = append(ans, root.Val)
if root.Children != nil {
for _, child := range root.Children {
preorder(child)
}
}
return ans
}