【发布时间】:2020-03-13 16:20:55
【问题描述】:
我需要在Java中实现LinkedList的两个方法removeFirst和removeLast
第一种方法我是这样解决的:
@Override
public E removeFirst() {
if(isEmpty()){
throw new NoSuchElementException();
}
E element = top.next.data;
top.next = top.next.next;
numElements--;
return element;
}
我在使用 removeLast 方法时遇到问题
public E removeLast() {
if(isEmpty()){
throw new NoSuchElementException();
}
for (int i = 0; i < numElements;i++) {
}
}
我的想法是使用 for 循环来查找最后一个元素,但我不知道之后该做什么
有什么建议吗?
我的节点类如下:
public class Node<E> {
E data;
Node<E> next;
public Node(E data) {
this(data,null);
}
public Node(E data, Node<E> next) {
this.data = data;
this.next = null;
}
@Override
public String toString () {
return data.toString();
}
}
【问题讨论】:
-
阅读this。
-
嗨,你应该找到最后两个元素并在倒数第二个元素上设置
next=null
标签: java data-structures linked-list