千家信息网

golang中怎么利用leetcode从上到下打印二叉树

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇文章给大家分享的是有关golang中怎么利用leetcode从上到下打印二叉树,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。从上到下
千家信息网最后更新 2025年12月03日golang中怎么利用leetcode从上到下打印二叉树

本篇文章给大家分享的是有关golang中怎么利用leetcode从上到下打印二叉树,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

例如:

给定二叉树: [3,9,20,null,null,15,7],

3

/ \

9 20

/ \

15 7

返回:

[3,9,20,15,7]

提示:

节点总数 <= 1000

解题思路:

1,这是一个二叉树和队列结合的题目

2,我们从根节点开始

3,依次进入队列每个节点和左右孩子节点

4,每次弹出首节点返回

5,需要注意根节点为空的情况

6,golang可以用slice模仿队列

golang小知识积累:

var a []int

a:=[]int{}

a:=make([]int,0)

这3种声明方式,哪一种更优?

答案是第一种

原因,第二种和第3种都有空间分配,第一种没有

不分配内存的还有一种变量,这就要说到一个特殊变量:匿名变量 ,也称作占位符,或者空白标识符,用下划线表示。

匿名变量,优点有三:

  • 不分配内存,不占用内存空间

  • 不需要你为命名无用的变量名而纠结

  • 多次声明不会有任何问题


代码实现

/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func levelOrder(root *TreeNode) []int { var r []int if root==nil{     return r }  var q []*TreeNode q=append(q,root)
for len(q)>0{ h:=q[0] r=append(r,h.Val) if h.Left!=nil{ q=append(q,h.Left) } if h.Right!=nil{ q=append(q,h.Right) } if len(q)==1{ return r }else{ q=q[1:] } } return r}

以上就是golang中怎么利用leetcode从上到下打印二叉树,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0