乐扣中等题(102)js–二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
层序遍历就像是广度优先遍历,在遍历的过程中要记录每一个节点的层级,并将其添加到不同的数组中去。
广度优先遍历的实现是:
①新建一个队列;
②把队头出队并访问;
③把队头的children挨个入队;
④重复第二、三步,直到队列为空。
解法一:
首先还是要判断,在root为空的时候,直接返回一个空数组。
然后新建一个数组,在数组内有元素的时候一直重复以下工作,首先把队头的元素弹出并且赋给n,如果n的左边元素存在就推进去,右边同理。因为队列是先进先出的,所以左在前。
这时候就已经得到了二叉树元素的广度优先遍历,还需要给每一个元素增加层级的属性,这时候需要注意几个点,①声明的数组也就是队列,会变成一个数组嵌套,②shift弹出的元素应该结构成n和l,③在后续push进去的也都应该是数组[n.left,l],右同理。
为使得每一个层级对应的元素可以放在一个数组中输出,还需要新建一个res空数组,在第一次进行的时候,res就是一个空的,

乐扣中等题(102)js–二叉树的层序遍历最先出现在Python成神之路

版权声明:
作者:玉兰
链接:https://www.techfm.club/p/25085.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>