leetcode 102. 二叉树的层次遍历【BFS】

这个题比较简单,参考利用队列实现二叉树BFS的方法,在每层遍历前先记录一下该层的节点数量,再分别建立ArrayList来存储每层节点对应的数值即可。

class Solution {
    public List<List<Integer>> levelOrder(TreeNode root) {      
        Queue<TreeNode> q = new LinkedList<>();
        List<List<Integer>> list = new ArrayList<>();
        if(root == null) return list;
        q.offer(root);
        while(!q.isEmpty()){
            int len = q.size();
            List<Integer> temp = new ArrayList<>();
            for(int i=0; i<len; i++){
                TreeNode node = q.poll();
                temp.add(node.val);
                if(node.left!=null)q.offer(node.left);
                if(node.right != null)q.offer(node.right);
            }
            list.add(temp);
        }
        return list;
    }
}
发布了55 篇原创文章 · 获赞 0 · 访问量 780

猜你喜欢

转载自blog.csdn.net/er_ving/article/details/104868495