每日一题 --- 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
}


相关文章
|
2月前
|
Go
go语言中遍历映射(map)
go语言中遍历映射(map)
80 8
|
2月前
|
存储 Go 索引
go语言中遍历字符串
go语言中遍历字符串
67 5
|
5月前
|
Python
【Leetcode刷题Python】剑指 Offer 26. 树的子结构
这篇文章提供了解决LeetCode上"剑指Offer 26. 树的子结构"问题的Python代码实现和解析,判断一棵树B是否是另一棵树A的子结构。
65 4
|
1月前
|
Go
go语言for遍历映射(map)
go语言for遍历映射(map)
51 12
|
1月前
|
Go 索引
go语言使用索引遍历
go语言使用索引遍历
37 9
|
1月前
|
Go
go语言for 遍历字符串
go语言for 遍历字符串
36 8
|
1月前
|
存储 Go 索引
go语言使用for循环遍历
go语言使用for循环遍历
53 7
|
2月前
|
Go
go语言中遍历映射同时遍历键和值
go语言中遍历映射同时遍历键和值
30 7
|
2月前
|
Go 索引
go语言遍历字符串
go语言遍历字符串
44 3
|
2月前
|
存储 Go
go语言 遍历映射(map)
go语言 遍历映射(map)
48 2