刷题40 二叉树的层序遍历

54 阅读1分钟

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

 

示例 1:

输入: root = [3,9,20,null,null,15,7]
输出: [[3],[9,20],[15,7]]

示例 2:

输入: root = [1]
输出: [[1]]

示例 3:

输入: root = []
输出: []

 

提示:

  • 树中节点数目在范围 [0, 2000] 内
  • -1000 <= Node.val <= 1000

题解:

class Solution {
public List<List<Integer>> levelOrder(TreeNode root) {
    //层序遍历 使用队列
    if(root==null) return new ArrayList<>();
    List<List<Integer>>result=new ArrayList<>();
    Queue<TreeNode>queue=new LinkedList<>();
    queue.add(root);
    while(!queue.isEmpty()){
        int size=queue.size();
        List<Integer>arr=new ArrayList<>();
        while(size!=0){
        TreeNode cur=queue.poll();
        if(cur.left!=null) queue.add(cur.left);
        if(cur.right!=null)queue.add(cur.right);
        arr.add(cur.val);
        size--;
        }
        result.add(arr);
    }
    return result;
}
}