Java 从尾部删除链表
我正在尝试从单链接列表的末尾删除。我没有保留对列表上最后一项引用的尾部变量。因此,这是我的实现。如果我设置Java 从尾部删除链表,java,data-structures,linked-list,Java,Data Structures,Linked List,我正在尝试从单链接列表的末尾删除。我没有保留对列表上最后一项引用的尾部变量。因此,这是我的实现。如果我设置current=null,我的问题是while循环之后的它不工作(它不会删除最后一个节点)。我必须将设置为当前。下一步=null 但是对于current.next=null,我必须添加什么next。即使我说current=null;这不意味着节点当前为空。有人能解释一下为什么我必须使用下一个吗 public void removeFromTail() throws EmptyStackExc
current=null,我的问题是while循环之后的代码>它不工作(它不会删除最后一个节点)。我必须将设置为当前。下一步=null代码>
但是对于current.next=null,我必须添加什么next代码>。即使我说current=null;这不意味着节点当前为空。有人能解释一下为什么我必须使用下一个吗
public void removeFromTail() throws EmptyStackException{
if(head==null){
throw new EmptyStackException("can't delete .Empty list");}
else if(head.next==null){
head=null;
}
else{
ListNode current=head;
while(current.next.next!=null){
current=current.next;
}
current.next=null;}
}
为什么不使用列表界面的删除方法
LinkedList<String> sss = new LinkedList<String>();
sss.add("a");
sss.add("b");
sss.remove(sss.size() - 1); // removes "b"
LinkedList sss=新建LinkedList();
sss.添加(“a”);
sss.添加(“b”);
sss.remove(sss.size()-1);//删除“b”
当您执行current=null
您将(本地)变量current
设置为null
,但列表中仍然指向同一个对象,您希望列表中的对象与其next
成员(someobject.next
)指向最后一个对象停止指向那里,因此需要更改someobject.next
)的值,例如,someobject.next=null
当前
是对链接列表中当前位置的引用。在while循环之后,current
表示倒数第二个项目。当您说current.next=null
时,您使当前对象的next
变为null
。使当前对象成为最后一个对象
当您说current=null
时,您只是将本地引用变量设置为null
。换句话说,它不再引用您的列表。它指的是null
我自己写这篇文章只是为了练习