zl程序教程

您现在的位置是:首页 >  其他

当前栏目

每日一题 --- 589. N 叉树的前序遍历[力扣][Go]

2023-03-14 23:00:32 时间

题目

给定一个 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
}

image