遍历 Java 中的双向链表?
Traversing a Doubly Linked Linked List in Java?
我正在尝试遍历一个双向链表,但我似乎得到了一个无限循环。我的目标是找到列表中第一个最左边出现的元素。我找到了元素,但我的程序似乎一直在循环。阻止它循环的唯一方法是中断。必须有另一种方法。谢谢。
{
Node<E> temp;
temp = head;
while(temp.next != null){
if(temp.value==obj){
System.out.println("YES");
}
else{
temp = temp.next;
}
System.out.println("\nNO");
}
}
无论如何都要进步。交换打印 "no" 和下一个作业:
Node<E> temp = head;
while(temp != null) { // Don't check for next here or miss the last element
if (temp.value == obj) {
System.out.println("YES: " + value);
break;
}
System.out.println("NO: " + value);
temp = temp.next;
// Loop check (if needed)
if (temp == head) {
break;
}
}
如果没有循环并且您只需要一个 "YES" 或 "NO",则为短变体:
Node<E> temp;
temp = head;
while (temp != null && temp.value != obj) {
temp = temp.next;
}
System.out.println(temp == null ? "NO" : "YES");
我正在尝试遍历一个双向链表,但我似乎得到了一个无限循环。我的目标是找到列表中第一个最左边出现的元素。我找到了元素,但我的程序似乎一直在循环。阻止它循环的唯一方法是中断。必须有另一种方法。谢谢。 {
Node<E> temp;
temp = head;
while(temp.next != null){
if(temp.value==obj){
System.out.println("YES");
}
else{
temp = temp.next;
}
System.out.println("\nNO");
}
}
无论如何都要进步。交换打印 "no" 和下一个作业:
Node<E> temp = head;
while(temp != null) { // Don't check for next here or miss the last element
if (temp.value == obj) {
System.out.println("YES: " + value);
break;
}
System.out.println("NO: " + value);
temp = temp.next;
// Loop check (if needed)
if (temp == head) {
break;
}
}
如果没有循环并且您只需要一个 "YES" 或 "NO",则为短变体:
Node<E> temp;
temp = head;
while (temp != null && temp.value != obj) {
temp = temp.next;
}
System.out.println(temp == null ? "NO" : "YES");