剑指 Offer 32 - II. 从上到下打印二叉树 II


图片转自 https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/5v22om/
层序遍历
public class Solution {public List<List<Integer>> levelOrder(TreeNode root) {// 使用队列存放节点Queue<TreeNode> queue = new LinkedList<>();// 存放每一层的遍历结果List<List<Integer>> resList = new ArrayList<>();// 初使化if (root != null) queue.add(root);// 如果队列不为空while (!queue.isEmpty()) {// 存放当前层的遍历结果List<Integer> tempList = new ArrayList<>();resList.add(tempList);// 当前层打印循环,即长度等于队列长度,注意 i 是从大小到for (int i = queue.size() - 1; i >= 0; i --) {// 拿出队首TreeNode node = queue.poll();// 将队首的值放入结果集tempList.add(node.val);// 将队首的左右节点分别入队if (node.left != null) queue.add(node.left);if (node.right != null) queue.add(node.right);}}return resList;}}
