java - LinkedList sum 函数完成后会删除整个列表吗?
问题描述
这是出于实践目的而不是现实世界的问题。
我 int
在一个链表中对所有数据类型的节点求和,这很好。
我还在int
链接列表中对所有具有偶数数据类型的节点求和,这很好用。
但是当我在测试类中一个接一个地调用时,整个列表都是空的(设置为空)。
我认为这与这条线有关head = head.next;
data()
返回存储在该节点上的数据
测试类
linkedList.addTail(4);
linkedList.addTail(7);
linkedList.addTail(2);
linkedList.addTail(7);
linkedList.sum();
//The list is empty here
linkedList.sumEven();
链表
public int sum(){
int sum = 0;
while (head != null) {
sum += head.data;
//Here
head = head.next;
}
System.out.println(sum);
return sum;
}
public int sumEven(){
//To keep track of the sum
int sum = 0;
while (head != null)
{
//If the data at head is even add
if (head.data() % 2 == 0)
sum += head.data;
//Or Here
head = head.next;
}
System.out.println(sum);
return sum;
}
解决方案
head
每次分配它时,您都会覆盖它。您可以在求和之前复制它,也可以使用类似于以下的 for 求和。
for(Integer i: head) sum += i;
我假设您的 LinkedList 中的元素是 int 类型的。
推荐阅读
- sql - 在动态 SQL 字符串构建器中封装字段的问题
- android - Ionic - 在 android 的不同目录中创建 SQLite 数据库
- ios - -[NSAttributedString boundingRectWithSize] rect 是 html 的错误
- html - 如何在 HTML 模板中使用 let?
- javascript - 从动态添加的行中获取 data-price 属性并放入输入框中
- mysql - 如何在 Django 中将所有相关数据库与 FK 连接起来?
- codeigniter - Codeigniter 将单个图像转换为多个调整大小,即 350*250、50*50 和原始大小
- json - 为什么 Minium Developer 不读取 JSON 文件?
- python - Python while 循环(不是从 while 循环中出来的)
- reactjs - 如何在 ComponentWillMount 中使用 window.location.href?