一.基本思路
基本的层次遍历,使用队列queue来临时存储遍历的结果,每层临时结果集levelRes存放每层的节点,全局结果集res存放所有层的节点
三个要点:
- 扫描二叉树的顺序,每一层都是从左到右
- 将每个节点加入queue的方式都是尾插入,queue只能从队尾进
- 从queue只能从队头出,queue.poll()
- 将queue出来的节点加入该层临时结果集的方式:尾插入、头插入
-
二.题目
1.二叉树层次遍历
102. 二叉树的层序遍历
将queue出来的节点加入该层临时结果集的方式:尾插入
将每一层临时结果集加入res的方式:尾插法2.锯齿形层次遍历
103. 二叉树的锯齿形层序遍历
思路:设根节点在第1层,则奇数层要把该层左向右遍历的结果加入结果集,偶数层要把该层从右向左遍历的结果加入结果集
对于奇数层: 将queue出来的节点加入该层临时结果集的方式:尾插入
- 将每一层临时结果集加入res的方式:尾插法
对于偶数层:
- 将queue出来的节点加入该层临时结果集的方式:头插入
- 将每一层临时结果集加入res的方式:尾插法
3.自底向上的层次遍历
107. 二叉树的层序遍历 II
将queue出来的节点加入该层临时结果集的方式:尾插入
将每一层临时结果集加入res的方式:头插入
