重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
本篇文章给大家分享的是有关golang中怎么利用leetcode从上到下打印二叉树,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
成都创新互联为企业级客户提高一站式互联网+设计服务,主要包括成都网站制作、做网站、外贸营销网站建设、成都App制作、微信平台小程序开发、宣传片制作、LOGO设计等,帮助客户快速提升营销能力和企业形象,创新互联各部门都有经验丰富的经验,可以确保每一个作品的质量和创作周期,同时每年都有很多新员工加入,为我们带来大量新的创意。
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树: [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从上到下打印二叉树,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。