一.基本思路

基本的层次遍历,使用队列queue来临时存储遍历的结果,每层临时结果集levelRes存放每层的节点,全局结果集res存放所有层的节点
三个要点:

  1. 扫描二叉树的顺序,每一层都是从左到右
  2. 将每个节点加入queue的方式都是尾插入,queue只能从队尾进
  3. 从queue只能从队头出,queue.poll()
  4. 将queue出来的节点加入该层临时结果集的方式:尾插入、头插入
  5. 将每一层临时结果集加入res的方式:头插法、尾插法

    二.题目

    1.二叉树层次遍历

    102. 二叉树的层序遍历
    将queue出来的节点加入该层临时结果集的方式:尾插入
    将每一层临时结果集加入res的方式:尾插法

    2.锯齿形层次遍历

    103. 二叉树的锯齿形层序遍历
    思路:设根节点在第1层,则奇数层要把该层左向右遍历的结果加入结果集,偶数层要把该层从右向左遍历的结果加入结果集
    对于奇数层:

  6. 将queue出来的节点加入该层临时结果集的方式:尾插入

  7. 将每一层临时结果集加入res的方式:尾插法

对于偶数层:

  1. 将queue出来的节点加入该层临时结果集的方式:头插入
  2. 将每一层临时结果集加入res的方式:尾插法


3.自底向上的层次遍历

107. 二叉树的层序遍历 II
将queue出来的节点加入该层临时结果集的方式:尾插入
将每一层临时结果集加入res的方式:头插入

4.N叉树的层次遍历

429. N 叉树的层序遍历