我有以下用于实现链表的Node类:
class Node {
Node next = null;
int data;
public Node (int d) {
data = d;
}
void AppendToTail (int d) {
Node end = new Node(d);
Node current = this;
while (current.next != null) {
current = current.next;
}
current.next = end;
}
}
我想创建一个给定Node的方法,它会从链接列表中删除它。所以,我知道如何创建这样的函数。但我不确定如何才能让它适合我的课程。
Node deleteNode(Node head, Node toDelete) {
Node n = head;
if (n.data == toDelete.data) {
return head.next;
}
while (n.next != null) {
if (n.next.data == toDelete.data) {
n.next = n.next.next;
return head;
}
n = n.next;
}
return head;
}
但是,我没有看到如何将它放入我的Node类中。有什么建议吗?
答案 0 :(得分:1)
使该函数成为Node类中的静态函数。
答案 1 :(得分:0)
我看到的一个问题是你没有将append和delete函数放入链表类而不是节点类中。您应该让节点类与链表类完全分开。因此,您可以在链接列表类中添加和删除节点类实例的append和delete方法。这对您有所帮助,因为您不必担心其创建的节点类,您可以只关注链表类中的实现。