Java 队列Queue的一些基本操作与概念!!!!!!!!

首先Java中的队列(Queue)是一种先进先出的数据结构。

 其中常见的一些基本操作与方法,包括:

  1、创建队列对象。例如:ArrayDeque、LinkedList等。

  2、入队操作。将元素添加到队列的末尾处,使用offer()方法。

  3、出队操作。从队列的头部移除并返回元素,使用poll()方法。

  4、peek()方法:查看队首元素。如果队列为空,则返回null。

  5、isEmpty()方法。用于判断队列是否为空,空则返回true。

  6、获取队列的大小,采用size()方法。

  7、清除队列内的元素,采用clear()方法。

下面采用力扣中的一道题,来展示上述的基本操作与方法。

题目:给定非空的二叉树根节点root,以数组的形式返回每一层节点的平均值。

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

输出:[3.00000,14.50000,11.00000]

解释:第 0 层的平均值为 3,第 1 层的平均值为 14.5,第 2 层的平均值为 11 。因此返回 [3, 14.5, 11] 

解题思路:

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
36
37
38
39
40
class Solution {
    public List<Double> averageOfLevels(TreeNode root) {
        // 二叉树的话,一定是通过left right进行遍历  root.left.val  root.right.val 每一层的结果sum/count
        List<Double> result = new ArrayList<>();
        if(root == null){
            return result;
        }
        
        // 采用队列入队的方式进行保存数据值 - 基本操作1、创建队列对象
        Queue<TreeNode> queue = new LinkedList<>();
        // - 基本操作2、入队操作
        queue.offer(root);
        // - 基本操作5: 判断队列是否为空,为空 -> True -> False 跳出循环
        while(!queue.isEmpty()){
            // - 基本操作6: 获取队列的大小
            int size = queue.size();
 
            double sum = 0.0;
            for(int i=0;i<size;i++){
                // - 基本操作3: 出队操作
                TreeNode node = queue.poll();
                sum += node.val;
                // 获取对应元素的左叶子结点 + 右叶子结点
                TreeNode left = node.left;
                TreeNode right = node.right;
                if(left != null){
                    queue.offer(left);
                }
                if(right != null){
                    queue.offer(right);
                }
            }
            // 每一层 都 取平均数
            result.add(sum / size);
        }
        return result;
        
 
    }
} 

 

posted @   我太想努力了  阅读(343)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示