「leetCode」429-N叉树的层序遍历??

作者&投稿:敛詹 (若有异议请与网页底部的电邮联系)
~

大家好,我是速冻鱼?,一条水系前端?,喜欢花里胡哨?,持续沙雕?,是隔壁寒草?的好兄弟,刚开始写文章。如果喜欢我的文章,可以关注?点赞,为我注入能量,与我一同成长吧~

题目?429.N叉树的层序遍历

难度中等

给定一个N叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。

树的序列化输入是用层序遍历,每组子节点都由null值分隔(参见示例)。

示例1:

输入:root=[1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]

示例2:

输入:root=[1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]

提示:

树的高度不会超过1000

树的节点总数在[0,10^4]之间

解题思路?

此题同样采用层序遍历

在每层遍历时初始化currentLevel记录当前层的结果

遍历每层结点个数时,像currentLevel记录每层结点的值

解题步骤?

此题采用层序遍历

处理边界条件

初始化queue

遍历queue

遍历每一层,每一层都初始化一个currentLevel用来记录当层的值

遍历每一层的结点,将每个结点的值添加到currentLevel中,并且将每个结点的子结点全部添加到queue中

当前层遍历玩之后,将当前层currentLevel放入result中

最后返回result

源码?/***//DefinitionforaNode.*functionNode(val,children){*this.val=val;*this.children=children;*};*//***@param{Node|null}root*@return{number[][]}*/varlevelOrder=function(root){if(!root){return[]}constresult=[]constdeque=[root]while(deque.length){letlen=deque.lengthconstcurrentLevel=[]while(len--){constnode=deque.shift()currentLevel.push(node.val)node.children.forEach(child=>{deque.push(child)})}result.push(currentLevel)}returnresult};

时间复杂度:O(N)

空间复杂度:O(1)

结束语?

那么鱼鱼的LeetCode算法篇的「leetCode」429-N叉树的层序遍历??就结束了,虽然前端对算法要求没有后端高,但是算法是编程基础,程序=数据结构?算法,所以算法这个东西没有捷径,只能多写多练,多总结,文章的目的其实很简单,就是督促自己去完成算法练习并总结和输出,菜不菜不重要,但是热爱?,喜欢大家能够喜欢我的短文,也希望通过文章认识更多志同道合的朋友,如果你也喜欢折腾,欢迎加我好友,一起沙雕,一起进步。

github?:sudongyu

个人博客???:速冻鱼blog

vx?:sudongyuer

写在最后

伙伴们,如果喜欢我的口水话给??点一个赞?或者关注?都是对我最大的支持。

原文:https://juejin.cn/post/7101857318802817037


四年磨一剑:我是如何拿到蚂蚁offer的?
通过这次笔试的体验,我觉得阿里的笔试会比较注重实际场景,而不是从 leetcode 原题搬一道给你做。 以上就是我本次面试的大体内容了,也许会有些遗忘的点,但大体上就是以上的内容了。 阿里的面试内容非常注重实际,因此想要在面试阿里过程中机会更大,就需要在平时的工作和学习中不断地沉淀,靠临时抱佛脚很容易被面试...

计算机竞赛有哪些
ACM国际大学生程序设计竞赛 适合有一定竞赛基础且对算法感兴趣大学生;作为计算机领域的顶尖程序设计大赛,每年上半年举行。不同于其他竞赛的个人赛,ACM 为「小组战」,由 3 名在校大学生组成小分队参加比赛。在比赛过程中,3 人组成的小组共用一台电脑,编写程序解决 8-10 个问题。由于是世界级的比赛...

如何正确学习数据科学中的 python
大多数有抱负的数据科学家是通过学习为开发人员开设的编程课程开始认识 python 的,他们也开始解决类似 leetcode 网站上的 python 编程难题。他们认为在开始使用 python 分析数据之前,必须熟悉编程概念。 资深数据分析师 Manu Jeevan 认为,这是一个巨大的错误,因为数据科学家使用 python 来对数据进行检索、清洗、可视化...

入门到精通的路上,有哪些快速掌握Python的途径
codewar:社区型编程练习网站,内容由易到难;leetcode:为编程面试准备,对初学者稍难;牛客网:提供 BAT 等大厂笔试题目;codecombat:提供一边游戏一边编程;projecteuler:纯粹的编程练习网站;菜鸟教程100例:基于 py2 的基础练习;3.2 遇到问题多交流。3.2.1 利用好搜索引擎。3.2.2 求助于各大...

初入职场那年,你经历的第一场「崩溃」是什么?你是如何走出来的?_百 ...
初入职场对许多人来说都是一个新的挑战和适应过程,可能会经历一些崩溃的情绪和困难。以下是一些常见的在职场经历崩溃的情况和应对策略:1. 对新环境的不适应:进入一个新的工作环境,可能会感到陌生和不适应。这时候可以主动去了解公司、部门和同事,参加培训和团队活动,积极融入工作环境,以便更好地...

大厂程序员推荐:最全的国内技术博客盘点,必须收藏!
🌟🌟🌟 LeetCode - 算法题库,刷题神器,🌟🌟🌟🌟🌟 LintCode - 类似LeetCode,提升算法技巧,🌟🌟🌟🌟🌟 牛客网 - 求职学习交流的社区,🌟🌟🌟🌟...

算法LC 岛屿的最大面积
使用队列,每次从队首取出土地,并将接下来想要遍历的土地放在队尾,就实现了广度优先搜索算法 和上面的解法一样 链接: https:\/\/leetcode-cn.com\/problems\/max-area-of-island https:\/\/leetcode-cn.com\/problems\/max-area-of-island\/solution\/dao-yu-de-zui-da-mian-ji-by-leetcode-solution\/ ...

如何将log36分别用常用对数和自然对数表示
1.背景 最近时不时翻一下 LeetCode 的题,关于二分查找法经常有一个时间复杂度是 log2(n) 的概念,一时间竟然想不起来,索性买了本高中知识点书,外加百度,搞明白了最后写一篇文章总结并记录下。 2.什么是 指数 看图,2、3、4 右...继续访问最新发布 什么是对数log?对数 换底公式继续访问高中数学公式大全高中...

计算机专业学生有哪些一定要参加的比赛?
一:大学生程序设计大赛(ACM\/ICPC)一.简介 ACM 国际大学生程序设计竞赛(ACM\/ICPC 或ICPC) 是由美国计算机协会(ACM) 主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过近30 多年的发展,ACM 国际大学生程序设计竞赛已经发展成为最具影响力的大学生计算机...

有什么比较好的编程比赛可以参加吗?
3、LeetCode 周赛 \/ 双周赛 适用人群:对算法感兴趣的小伙伴 全称:LeetCode (力扣)特点:周赛是一周一次, 比赛时间为每周日上午10:30;双周赛是每两周一次,比赛时间为周六晚上22:30;力扣(LeetCode)是全球最早的 OJ(Online Judge) 之一,力扣上的题目偏求职面试风格,题目难度分简单、中等...

黄冈市18656714421: 高分求助!!LeetCode!!! -
冉胞奥美: 本题大意:给定一个数集,计算得出它的所有子集需要注意一下几点:1、子集不能重复2、子集里面的数需要按照非降序排列解题思路:考虑到用位操作来模拟所有的排列组合.以数集大小等于3为例:3位二进制的全排列为:000,001,...

黄冈市18656714421: leetcode是什么? -
冉胞奥美: leetcode是个题库,里面有很编程多面试的题目,可以在线编译运行.难度比较高.如果自己能都做出来,对面大公司很有帮助. 建议一次只针对一种题型进行训练,如数组、链表、二叉树、回溯、动态规划,这样效果会更好.做leetcode肯定是有帮助的.我今年四月面腾讯的时候,面试官就问了我一道leetcode上的原题,让我写一个数组右移k位的程序.然后我大学做了两年ACM吧,感觉leetcode上的题目基本都比ACM要简单一些.

黄冈市18656714421: 如何正确高效地使用LeetCode -
冉胞奥美: 说说我自己目前的用法: step1、在leetcode上找一个题目,阅读并理解题目要求 step2、开eclipse,根据题目的要求在自己本地进行编码并测试结果是否正确 step3、提交代码看看是否通过(通过则进入step4,否则返回step2直至通过) step4、在discuss里面搜索这个题目,看看其他人是如何实现的

黄冈市18656714421: 哪个软件能搜python编程题? -
冉胞奥美: 哪个软件能搜python编程题在线编程平台:有许多在线编程平台提供Python练习题和挑战,例如LeetCode、HackerRank、Codewars等.这些平台通常提供各种难度级别的练习题,可以帮助您提高编程技能. LeetCode是一家知名的在线刷题网...

黄冈市18656714421: leetcode求大神翻译一下代码中每一句是什么意思 -
冉胞奥美: leetcode 是一个美国的在线编程网站的代码,上面主要收集了各大IT公司的笔试面试题,可供应届大学毕业生求职参考.此代码是供网上搜索用的,不能翻译,否则服务器无法识别.

黄冈市18656714421: 如何快速高效使用LeetCode来学习C -
冉胞奥美: 步骤/方法 1 打开Launch Center Pro,我们创建一个叫Omnifocus的操作组,然后再往这个操作组添加新的操作.如果你要在 Omnifocus 创建新收件箱项,添加URL到Launch Center Pro即可通过Launch Center Pro快捷创建收件箱项.在URL一栏...

黄冈市18656714421: LeetCode按照怎样的顺序来刷题比较好 -
冉胞奥美: 1、建议未刷过题的新人按着顺序来.前 150 题覆盖了很多经典题目和知识点,指针法类如『3 sum』系列,动规类如『regex matching』,搜索类题目如『Sodoku Solver』.2、基本熟悉知识点(图、树、堆、栈、链表、哈希表、记忆搜索、动...

黄冈市18656714421: listNode是个什么函数 -
冉胞奥美: 在LeetCode的函数里运行这段代码:idx = ListNode(3) n = idx n.next = ListNode(4) n = n.next n.next = ListNode(5) n = n.next return idx你将得到的结果是 3 -> 4 -> 5这就是如何构造这个ListNode类型数据结构的方法.

黄冈市18656714421: LeetCode 第9题:判断一个整数是否是回文数 -
冉胞奥美: public class Demo { public static void main(String[] args) { int num = 1234321; System.out.println(isPalindrome(num)); // 通用 System.out.println(isPalindrome2(num)); // 不那么通用 } // 通用的算法 private static boolean isPalindrome(int num) { if (...

黄冈市18656714421: 有没有比较好的c++在线刷题网站?要有参考代码的! -
冉胞奥美: 洛谷

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网