我正在尝试计算链接列表中特定整数的出现次数。但是我遇到了无限循环。我尝试打印变量以查看代码到达的位置但没有打印。我想知道是否有人可以成为我的另一双眼睛。
我的LinkedListNode
课只是:
public class LinkedListNode {
int data;
public LinkedListNode next;
// constructor
public LinkedListNode(int newData) {
this.next = null;
this.data = newData;
}
}
我的代码:
public static int countInt(LinkedListNode head, int number) {
int count = 0;
while (head.next != null) {
if (head.data == number) {
count++;
//System.out.println(count);
head = head.next;
//System.out.println(head.data);
}
}
return count;
}
答案 0 :(得分:5)
即使head
不满足,您也应该将if
移至下一个节点。
答案 1 :(得分:3)
当当前节点等于您发送到countInt
的号码时,您只能移动到下一个节点。
答案 2 :(得分:1)
移动
head = head.next
在while循环之外将有助于无限循环,但您需要检查head是否为null,而不是head.next,因此while循环将检查最后一个元素的值
public static int countInt(LinkedListNode head, int number) {
int count = 0;
while (head != null) {
if (head.data == number) {
count++;
//System.out.println(count);
//System.out.println(head.data);
}
head = head.next;
}
return count;
}