这是出于实践目的,而不是现实世界中的问题。
我在链表中对int
数据类型的所有节点求和,这很好。
我还在链表中对具有偶数int
数据类型的所有节点求和,这很好。
但是当我在测试类中一个接一个地调用时,整个列表都是空的(Well设置为null(。
我认为这与这条线路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类型的。