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

本篇文章给大家分享的是有关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从上到下打印二叉树,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


标题名称:golang中怎么利用leetcode从上到下打印二叉树
本文地址:http://scyanting.com/article/pphsdh.html