本篇文章给大家分享的是有关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 []intif root==nil{return r}var q []*TreeNodeq=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从上到下打印二叉树,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。
新闻标题:golang中怎么利用leetcode从上到下打印二叉树
新闻来源:http://www.jxjierui.cn/article/pphsdh.html


咨询
建站咨询
