102. 二叉树的层序遍历/面试题32 - II. 从上到下打印二叉树 II(简单,值得看)
给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。
示例:
二叉树:[3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回其层次遍历结果:
1 2 3 4 5
| [ [3], [9,20], [15,7] ]
|
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal
思路:
二叉树的层次遍历,这里借助队列实现
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
class Solution { List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>> levelOrder(TreeNode root) { if(root==null){ return res; } Queue<TreeNode> queue = new LinkedList<>(); queue.add(root); while(!queue.isEmpty()){ List<Integer> list = new ArrayList<>(); int size = queue.size(); for(int i=0;i<size;i++){ TreeNode tmp = queue.poll(); list.add(tmp.val); if(tmp.left!=null){ queue.add(tmp.left); } if(tmp.right!=null){ queue.add(tmp.right); } } res.add(list); } return res; } }
|