只用一个循环实现层序遍历
107. 二叉树的层序遍历 II
给你二叉树的根节点 root
,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
只用一个循环while遍历栈s的长度,每层使用arr1保存本层的节点,用arr2保存本层节点的子节点,当s遍历结束(s.length==0),则把子节点数组arr2赋值给s,并把本层的节点arr1赋值给结果数组,置空arr1,arr2
注意:arr1和arr2要在循环外初始化
var levelOrderBottom = function(root) {let arr=[] //保存结果let s=[] //栈if(root==null){return arr}s.push(root)let arr1=[] //本层let arr2=[] //子节点数组,用于和s交换while(s.length){let node=s.shift()arr1.push(node.val)node.left&&arr2.push(node.left)node.right&&arr2.push(node.right)if(s.length===0){arr.push(arr1)s=[...arr2]arr1=[]arr2=[]}}return arr.reverse()
};
只用一个循环实现层序遍历相关推荐
- Java只用一个循环语句输出九九乘法表
同学们在进行编程学习的时候,输出九九乘法表应该是基础中的基础了,只要我们使用几个循环语句即可轻松实现,那么你有没有想过如果只用一个循环语句应该怎么实现呢? 分析:注意是使用一个循环语句来写,增加了逻辑 ...
- LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度
微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 97交错字符串(动态规划) LeetCode 98验证 ...
- Java技巧:用一个循环语句输出九九乘法表!
同学们在进行编程学习的时候,输出九九乘法表应该是基础中的基础了,只要我们使用几个循环语句即可轻松实现,那么你有没有想过如果只用一个循环语句应该怎么实现呢? 分析:注意是使用一个循环语句来写,增加了逻辑 ...
- 一个循环、一个变量打印乘法口诀
前几天面试的时候遇到了一个问题,当时也没啥思路,而且时间比较紧,所以就空下了.回来后一直耿耿于怀,于是研究了一下. 问题是这样的:只用一个循环和一个变量打印出乘法口诀. 想了一段时间感觉还是没啥思路, ...
- 【数据结构笔记10】二叉树的先序、中序、后序遍历,中序遍历的堆栈/非递归遍历算法,层序遍历,确定一个二叉树,树的同构
本次笔记内容: 3.3.1 先序中序后序遍历 3.3.2 中序非递归遍历 3.3.3 层序遍历 3.3.4 遍历应用例子 小白专场:题意理解及二叉树表示 小白专场:程序框架.建树及同构判别 文章目录 ...
- 二叉树(前序,中序,后序,层序)遍历递归与循环的python实现
二叉树的遍历是在面试使比较常见的项目了.对于二叉树的前中后层序遍历,每种遍历都可以递归和循环两种实现方法,且每种遍历的递归实现都比循环实现要简洁.下面做一个小结. 一.中序遍历 前中后序三种遍历方法对 ...
- 2.<tag-二叉树和层序遍历相关题>-lt.116. 填充每个节点的下一个右侧节点指针 + lt.117. 填充每个节点的下一个右侧节点指针 II 1
lt.116. 填充每个节点的下一个右侧节点指针 [案例需求] [思路分析一, 迭代法] [代码实现] /* // Definition for a Node. class Node {public ...
- vba 跳到下一个循环_遍历工作薄和工作表(For Each循环的利用)
今日的内容是"VBA之EXCEL应用"的第三章"工作簿(Workbook)和工作表(Worksheet)对象(Object)"中第三节"遍历工作薄和工 ...
- Java实现自定义队列和树结构_实现二叉树的层序遍历,说说Java中的队列结构(实现一个Java的队列)...
几次面试都被问到二叉树的层序遍历,需要用到队列这个数据结构,我一直想使用一个队列来实现,但是java里没有一种好的队列的数据结构,我又一次面试用ArrayList去当队列用,但是被面试官说到,是不对的 ...
最新文章
- winfrom中,父窗体中只允许显示一个子窗体的代码怎么写?
- Html emed 和 object
- tp点一共有多少_致命女人更新时间 致命女人第一季一共多少集在线观看地址
- flask 继承模版的基本使用
- SourceInsight 4.0 之二 项目文件关联
- el-select 多选取值_AR? ATOS?? DRA???这些都是英语阅读分级?聊一聊我知道的兰斯值(lexile measure))...
- 利剑无意之scala小考核
- 【Python 2.7】str和unicode的互相转换,摘自《Effective Python》
- Java 8 Streams:过滤和谓词否定
- Redis:20---常用功能之(发布与订阅)
- 浏览器解析html全过程详解
- CRF和LSTM 模型在序列标注上的优劣?
- 时间数值缺失产生的字符串NaT处理
- 在线UML图设计 用例图 在线制图
- Linux开发板启动需要登录密码设置方法
- 时间格式2020-01-13T16:00:00.000Z中的T和Z分别表示什么,如何处理
- 华为鸿蒙wifi认证,鸿蒙 WiFi操作,热点连接
- 导热材料在电子产品散热系统中的重要性
- 4种解法 - 最小的k个数
- python求满足条件的值的个数_计算列表中满足特定条件的值的数目
热门文章
- oracle cost小 比较慢,Oracle数据库中有关CBO优化的三个问题
- python期末题目_Python期末复习题必考
- sht-11c语言程序,温湿度传感器SHT11数据手册(中文)版.pdf
- python手机自动化框架_python自动化框架(一)
- java 不存在就创建,java怎么实现判断文件是否存在,不存在就创建的方法
- 生产批量检查web url并通过手机邮件报警案例
- 计算机中丢失api-ms-win-crt-locale,API-MS-WIN一系列丢失DLL打包
- java 设置主线程_Java线程编程中的主线程讲解
- 必知必会 | WebView 的一切都在这儿
- 3-ESP8266 SDK开发基础入门篇--点亮一个灯