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()
};

只用一个循环实现层序遍历相关推荐

  1. Java只用一个循环语句输出九九乘法表

    同学们在进行编程学习的时候,输出九九乘法表应该是基础中的基础了,只要我们使用几个循环语句即可轻松实现,那么你有没有想过如果只用一个循环语句应该怎么实现呢? 分析:注意是使用一个循环语句来写,增加了逻辑 ...

  2. LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度

    微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 97交错字符串(动态规划) LeetCode 98验证 ...

  3. Java技巧:用一个循环语句输出九九乘法表!

    同学们在进行编程学习的时候,输出九九乘法表应该是基础中的基础了,只要我们使用几个循环语句即可轻松实现,那么你有没有想过如果只用一个循环语句应该怎么实现呢? 分析:注意是使用一个循环语句来写,增加了逻辑 ...

  4. 一个循环、一个变量打印乘法口诀

    前几天面试的时候遇到了一个问题,当时也没啥思路,而且时间比较紧,所以就空下了.回来后一直耿耿于怀,于是研究了一下. 问题是这样的:只用一个循环和一个变量打印出乘法口诀. 想了一段时间感觉还是没啥思路, ...

  5. 【数据结构笔记10】二叉树的先序、中序、后序遍历,中序遍历的堆栈/非递归遍历算法,层序遍历,确定一个二叉树,树的同构

    本次笔记内容: 3.3.1 先序中序后序遍历 3.3.2 中序非递归遍历 3.3.3 层序遍历 3.3.4 遍历应用例子 小白专场:题意理解及二叉树表示 小白专场:程序框架.建树及同构判别 文章目录 ...

  6. 二叉树(前序,中序,后序,层序)遍历递归与循环的python实现

    二叉树的遍历是在面试使比较常见的项目了.对于二叉树的前中后层序遍历,每种遍历都可以递归和循环两种实现方法,且每种遍历的递归实现都比循环实现要简洁.下面做一个小结. 一.中序遍历 前中后序三种遍历方法对 ...

  7. 2.<tag-二叉树和层序遍历相关题>-lt.116. 填充每个节点的下一个右侧节点指针 + lt.117. 填充每个节点的下一个右侧节点指针 II 1

    lt.116. 填充每个节点的下一个右侧节点指针 [案例需求] [思路分析一, 迭代法] [代码实现] /* // Definition for a Node. class Node {public ...

  8. vba 跳到下一个循环_遍历工作薄和工作表(For Each循环的利用)

    今日的内容是"VBA之EXCEL应用"的第三章"工作簿(Workbook)和工作表(Worksheet)对象(Object)"中第三节"遍历工作薄和工 ...

  9. Java实现自定义队列和树结构_实现二叉树的层序遍历,说说Java中的队列结构(实现一个Java的队列)...

    几次面试都被问到二叉树的层序遍历,需要用到队列这个数据结构,我一直想使用一个队列来实现,但是java里没有一种好的队列的数据结构,我又一次面试用ArrayList去当队列用,但是被面试官说到,是不对的 ...

最新文章

  1. winfrom中,父窗体中只允许显示一个子窗体的代码怎么写?
  2. Html emed 和 object
  3. tp点一共有多少_致命女人更新时间 致命女人第一季一共多少集在线观看地址
  4. flask 继承模版的基本使用
  5. SourceInsight 4.0 之二 项目文件关联
  6. el-select 多选取值_AR? ATOS?? DRA???这些都是英语阅读分级?聊一聊我知道的兰斯值(lexile measure))...
  7. 利剑无意之scala小考核
  8. 【Python 2.7】str和unicode的互相转换,摘自《Effective Python》
  9. Java 8 Streams:过滤和谓词否定
  10. Redis:20---常用功能之(发布与订阅)
  11. 浏览器解析html全过程详解
  12. CRF和LSTM 模型在序列标注上的优劣?
  13. 时间数值缺失产生的字符串NaT处理
  14. 在线UML图设计 用例图 在线制图
  15. Linux开发板启动需要登录密码设置方法
  16. 时间格式2020-01-13T16:00:00.000Z中的T和Z分别表示什么,如何处理
  17. 华为鸿蒙wifi认证,鸿蒙 WiFi操作,热点连接
  18. 导热材料在电子产品散热系统中的重要性
  19. 4种解法 - 最小的k个数
  20. python求满足条件的值的个数_计算列表中满足特定条件的值的数目

热门文章

  1. oracle cost小 比较慢,Oracle数据库中有关CBO优化的三个问题
  2. python期末题目_Python期末复习题必考
  3. sht-11c语言程序,温湿度传感器SHT11数据手册(中文)版.pdf
  4. python手机自动化框架_python自动化框架(一)
  5. java 不存在就创建,java怎么实现判断文件是否存在,不存在就创建的方法
  6. 生产批量检查web url并通过手机邮件报警案例
  7. 计算机中丢失api-ms-win-crt-locale,API-MS-WIN一系列丢失DLL打包
  8. java 设置主线程_Java线程编程中的主线程讲解
  9. 必知必会 | WebView 的一切都在这儿
  10. 3-ESP8266 SDK开发基础入门篇--点亮一个灯