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

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

题目

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


相关文章
|
4天前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
36 6
|
4天前
|
Go
golang力扣leetcode 675.为高尔夫比赛砍树
golang力扣leetcode 675.为高尔夫比赛砍树
31 0
|
4天前
leetcode-SQL-608. 树节点
leetcode-SQL-608. 树节点
18 0
|
4天前
|
Java
leetcode-559:N 叉树的最大深度
leetcode-559:N 叉树的最大深度
20 0
|
4天前
leetcode-590:N 叉树的后序遍历
leetcode-590:N 叉树的后序遍历
28 0
|
4天前
leetcode-589:N 叉树的前序遍历
leetcode-589:N 叉树的前序遍历
18 0
leetcode-589:N 叉树的前序遍历
|
4天前
|
C++ Python
leetcode-513:找树左下角的值
leetcode-513:找树左下角的值
21 0
|
4天前
|
Java C++ Python
leetcode-538:把二叉搜索树转换为累加树
leetcode-538:把二叉搜索树转换为累加树
22 0
|
4天前
|
算法 C++
【刷题】Leetcode 1609.奇偶树
这道题是我目前做过最难的题,虽然没有一遍做出来,但是参考大佬的代码,慢慢啃的感觉的真的很好。刷题继续!!!!!!
9 0
|
4天前
|
算法 API DataX
二叉树(下)+Leetcode每日一题——“数据结构与算法”“对称二叉树”“另一棵树的子树”“二叉树的前中后序遍历”
二叉树(下)+Leetcode每日一题——“数据结构与算法”“对称二叉树”“另一棵树的子树”“二叉树的前中后序遍历”