JAVA双链表-计数相等的数据项
对于如何实现双链接列表,我仍然有点困惑。在研究并找到了一些关于它们的信息之后,我对一些基本函数的工作原理有了很好的了解,例如添加、删除等。然而,如果我想为一个名为countEquals(E check)的DLList编写一个方法,该方法遍历整个列表并计算列表中与“check”相等的项数传递给方法的数据项,我将如何编写它。指令说我不能使用for-each循环或迭代器,但必须使用某种类型的循环。完全遍历列表后,返回等于“check”的项数。以下是我尝试为此编写的一些代码: DLList的内部引用:字段(下一个、数据、上一个)成员(大小)、头和尾JAVA双链表-计数相等的数据项,java,list,count,doubly-linked-list,Java,List,Count,Doubly Linked List,对于如何实现双链接列表,我仍然有点困惑。在研究并找到了一些关于它们的信息之后,我对一些基本函数的工作原理有了很好的了解,例如添加、删除等。然而,如果我想为一个名为countEquals(E check)的DLList编写一个方法,该方法遍历整个列表并计算列表中与“check”相等的项数传递给方法的数据项,我将如何编写它。指令说我不能使用for-each循环或迭代器,但必须使用某种类型的循环。完全遍历列表后,返回等于“check”的项数。以下是我尝试为此编写的一些代码: DLList的内部引用:字
public int countEquals(E Check){
currentNode = head;
int count = 0;
while (currentNode != null) {
if (currentNode.data == check) {
count ++;
else {
currentNode.next = currentNode;
}
return count;
}
如果我必须写更多的指针赋值,我不太确定这是否能正确地遍历双链接列表?我在想,因为我没有添加任何节点,只是遍历一个列表,所以我不需要做指针 差不多了,很努力。然而,只有几件事。首先,您可能希望研究使用
something.equals()
而不是=
,因为后者用于对象标识而不是值相等
第二。遍历列表的逻辑稍有偏差。无论是否找到某个项目,都需要执行该任务,并且任务的两边应该颠倒
查看以下伪代码以获得指导:
def countEquals(check):
currentNode = head
count = 0
while currentNode != null:
if currentNode.data == check:
count = count + 1
currentNode = currentNode.next
return count;
差不多了,很努力。然而,只有几件事。首先,您可能希望研究使用
something.equals()
而不是=
,因为后者用于对象标识而不是值相等
第二。遍历列表的逻辑稍有偏差。无论是否找到某个项目,都需要执行该任务,并且任务的两边应该颠倒
查看以下伪代码以获得指导:
def countEquals(check):
currentNode = head
count = 0
while currentNode != null:
if currentNode.data == check:
count = count + 1
currentNode = currentNode.next
return count;
差不多了,很努力。然而,只有几件事。首先,您可能希望研究使用
something.equals()
而不是=
,因为后者用于对象标识而不是值相等
第二。遍历列表的逻辑稍有偏差。无论是否找到某个项目,都需要执行该任务,并且任务的两边应该颠倒
查看以下伪代码以获得指导:
def countEquals(check):
currentNode = head
count = 0
while currentNode != null:
if currentNode.data == check:
count = count + 1
currentNode = currentNode.next
return count;
差不多了,很努力。然而,只有几件事。首先,您可能希望研究使用
something.equals()
而不是=
,因为后者用于对象标识而不是值相等
第二。遍历列表的逻辑稍有偏差。无论是否找到某个项目,都需要执行该任务,并且任务的两边应该颠倒
查看以下伪代码以获得指导:
def countEquals(check):
currentNode = head
count = 0
while currentNode != null:
if currentNode.data == check:
count = count + 1
currentNode = currentNode.next
return count;
如果数据是整数,请这样做
while (currentNode != null) {
if (currentNode.data == check) {
count ++;
currentNode.next = currentNode;
}
else {
currentNode.next = currentNode;
}
}
return count;
如果数据是整数,请这样做
while (currentNode != null) {
if (currentNode.data == check) {
count ++;
currentNode.next = currentNode;
}
else {
currentNode.next = currentNode;
}
}
return count;
如果数据是整数,请这样做
while (currentNode != null) {
if (currentNode.data == check) {
count ++;
currentNode.next = currentNode;
}
else {
currentNode.next = currentNode;
}
}
return count;
如果数据是整数,请这样做
while (currentNode != null) {
if (currentNode.data == check) {
count ++;
currentNode.next = currentNode;
}
else {
currentNode.next = currentNode;
}
}
return count;
您的代码看起来几乎正确。不管怎样,您都需要
currentNode.next=currentNode代码>执行,因此将其移出else。您可能希望执行.equals()
而不是=
进行比较。1。缺少一个结束括号。2.范代尔说了什么。哦,好吧,我明白你们的意思。因为在我编写的代码中,如果它运行到一个空节点,它将自动返回计数,而不是继续遍历列表。谢谢大家的帮助。在这种情况下,如何实现.equals()方法?您的代码看起来几乎正确。不管怎样,您都需要currentNode.next=currentNode代码>执行,因此将其移出else。您可能希望执行.equals()
而不是=
进行比较。1。缺少一个结束括号。2.范代尔说了什么。哦,好吧,我明白你们的意思。因为在我编写的代码中,如果它运行到一个空节点,它将自动返回计数,而不是继续遍历列表。谢谢大家的帮助。在这种情况下,如何实现.equals()方法?您的代码看起来几乎正确。不管怎样,您都需要currentNode.next=currentNode代码>执行,因此将其移出else。您可能希望执行.equals()
而不是=
进行比较。1。缺少一个结束括号。2.范代尔说了什么。哦,好吧,我明白你们的意思。因为在我编写的代码中,如果它运行到一个空节点,它将自动返回计数,而不是继续遍历列表。谢谢大家的帮助。在这种情况下,如何实现.equals()方法?您的代码看起来几乎正确。不管怎样,您都需要currentNode.next=currentNode代码>执行,因此将其移出else。您可能希望执行.equals()
而不是=
进行比较。1。缺少一个结束括号。2.范代尔说了什么。哦,好吧,我明白你们的意思。因为在我编写的代码中,如果它运行到一个空节点,它将自动返回计数,而不是继续遍历列表。谢谢大家的帮助。在这种情况下,我将如何实现.equals()方法?我对代码的赋值部分有一个问题。两个赋值语句之间的区别是什么?currentNode.next=currentNode。这基本上会指向它自己吗?@业余爱好者哈斯克尔,是的,没错。实际上,它将当前节点的下一个指针设置为指向自身,从而有效地在该点截断列表。正确的方法是,将本地指针设置为指向下一个节点。我对代码的赋值部分有一个问题。区别是什么