Java 如何删除循环链表中的节点
我在java中删除了循环链表中的节点。删除节点开头、中间和结尾处的节点。如何解决这个问题Java 如何删除循环链表中的节点,java,circular-list,Java,Circular List,我在java中删除了循环链表中的节点。删除节点开头、中间和结尾处的节点。如何解决这个问题 public class Node { int element; Node next; } 现在有另一个类,所有的add和display方法都在循环列表中正常工作,但是我的remove方法有问题 public class MyLinkedList { Node head;
public class Node {
int element;
Node next;
}
现在有另一个类,所有的add和display方法都在循环列表中正常工作,但是我的remove方法有问题
public class MyLinkedList {
Node head;
void remove(int e){
Node tNode = head;
Node pNode = head;
if (head.element == e)
while(tNode.next!=head)
tNode.next=head.next.next;
else {
while (tNode != head && tNode.element != e) {
pNode=tNode.next;
}
if (tNode != head)
pNode.next = tNode.next;
}
}
}
那怎么办
private Node remove(int i) {
Node node = head;
do {
if (node.next.element == i) {
Node n = node.next;
node.next = n.next;
if (n == head) { // removal of head
head = node;
}
return n;
}
node = node.next();
} while(node != head);
return null;
}
它正确地删除中间的头,当列表只包含一个元素时,它将简单地拒绝删除最后一个元素
注:当您要求循环链表时,我假设最后一个元素有头指向下一个元素。。。。问题是?它不是移除一个节点不是在开始,中间和结束我只是一团糟!