41.二叉树的层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
示例 1:

输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]
示例 2:
输入:root = [] 输出:[]
【思路】
利用queue和size实现对当前层入队出队存入list。
注意!!!
返回类型为List<List<Integer>>
class Solution { public List<List<Integer>> levelOrder(TreeNode root) { if(root==null) return new ArrayList(); List<List<Integer>> list = new ArrayList<List<Integer>>(); Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(root); while(!queue.isEmpty()){ // 获取当前层的节点数量,保证一层处理完再处理下一层 int size = queue.size(); // 存储当前层的节点值 List<Integer> tmp = new ArrayList(); while(size>0){ TreeNode node = queue.poll(); if(node.left!=null) queue.offer(node.left); if(node.right!=null) queue.offer(node.right); size--; tmp.add(node.val); } list.add(tmp); } return list; } }

浙公网安备 33010602011771号