题目描述
给你二叉树的根节点 root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
输入输出
1 2 3 4 5 6 7 8
| 输入:root = [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]
输入:root = [1] 输出:[[1]]
输入:root = [] 输出:[]
|
基本思路
使用队列
java实现
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> res = new ArrayList<List<Integer>>(); if(root == null) return res; Queue<TreeNode> queue = new LinkedList<TreeNode>(); queue.offer(root); while(!queue.isEmpty()){ List<Integer> level = new ArrayList<Integer>(); int currentLevel = queue.size(); for(int i = 1; i <= currentLevel; i++){ TreeNode temp = queue.poll(); level.add(temp.val); if(temp.left != null) queue.add(temp.left); if(temp.right != null) queue.add(temp.right); } res.add(level); } return res; } }
|