温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2021-07-06 15:03:56 来源:亿速云 阅读:220 作者:Leah 栏目:大数据

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI