【发布时间】:2021-08-20 08:33:30
【问题描述】:
我正在尝试实现我自己的添加和删除节点的 LinkedList 类。我面临的唯一问题是,当我尝试打印链表的所有节点时,由于我的 while 循环,我无法打印最后一个节点。我不确定如何删除此错误/错误。
public class LinkedList {
private Node head;
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insert(5);
list.insert(10);
list.insert(13);
list.insert(15);
list.insert(20);
list.show();
list.delete(13);
list.show();
}
public void insert(int val) {
Node node = new Node(val);
node.next = null;
if (head == null) {
head = node;
} else {
Node temp = head;
while (temp.next != null) {
temp = temp.next;
}
temp.next = node;
}
}
public void delete(int val) {
Node temp = head, prev = null;
if (temp != null && temp.val == val) {
head = temp.next;
return;
}
while (temp != null && temp.val != val) {
prev = temp;
temp = temp.next;
}
if (temp == null) return;
prev.next = temp.next;
}
public void show() {
Node temp = head;
while (temp.next != null) {
System.out.print(temp.val + " ");
temp = temp.next;
}
System.out.println();
}
private class Node {
Node next;
int val;
private Node(int val) {
this.val = val;
}
}
}
【问题讨论】:
-
提示:弄清楚“为什么我的代码没有按照我的预期做”是学习编程的关键部分。所以:您的第一步是能够跟随您的代码正在做什么。您可以通过 A)学习如何使用调试器(使用 intellij 或 eclipse 等 IDE 非常容易)或 B)通过简单地添加 PRINT 语句来实现。然后,对于这么小的代码也很有帮助:拿一张纸和一支笔。然后在心里“运行”你的代码。写下变量名,然后写下发生了什么变化等。
-
不客气。
标签: java linked-list