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

人生乱弹 2年前 (2023) admin
11 0

首先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] 
解题思路:

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;

}
} 

 

文章来源

版权声明:admin 发表于 2023年12月16日 am4:47。
转载请注明:Java 队列Queue的一些基本操作与概念!!!!!!!! | 银库

相关文章

本站主题由 OneNav 一为主题强力驱动