LeetCode-102.二叉树的层序遍历

给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。

 

示例:
二叉树:[3,9,20,null,null,15,7],

3
/ \
9 20
/ \
15 7
返回其层次遍历结果:

[
[3],
[9,20],
[15,7]
]

 1 /**
 2  * Definition for a binary tree node.
 3  * public class TreeNode {
 4  *     int val;
 5  *     TreeNode left;
 6  *     TreeNode right;
 7  *     TreeNode(int x) { val = x; }
 8  * }
 9  */
10 class Solution {
11     public List<List<Integer>> levelOrder(TreeNode root) {
12         List<List<Integer>> res = new ArrayList<>();
13 
14     Queue<TreeNode> queue = new ArrayDeque<>();
15     if (root != null) {
16         queue.add(root);
17     }
18     while (!queue.isEmpty()) {
19         int n = queue.size();
20         List<Integer> level = new ArrayList<>();
21         for (int i = 0; i < n; i++) { 
22             TreeNode node = queue.poll();
23             level.add(node.val);
24             if (node.left != null) {
25                 queue.add(node.left);
26             }
27             if (node.right != null) {
28                 queue.add(node.right);
29             }
30         }
31         res.add(level);
32     }
33 
34     return res;
35     }
36 }

 

posted @ 2020-05-27 17:01  99小北  阅读(103)  评论(0)    收藏  举报