我想创建一个方法来在列表的开头添加一个元素并删除第一个元素。
这是我的Node
class(我只使用int
s,我已经创建了标准的getter和setter)和我的LinkedList
类:
public class Node
{
private int info = 0;
private No next = null;
No(int i)
{
this.info = i;
}
}
public class LinkedList
{
public Node first, last;
public int size;
public LinkedList()
{
this.first = this.last = null;
size = 0;
}
我能够创建addFirst
方法:
void addFirst(int e)
{
Node n = new No(e);
if(isEmpty()){
this.first = n;
this.last = n;
}
else{
n.setNext(this.first);
this.first = n;
}
size++;
}
addFirst
工作正常,但我不知道如何处理deleteFirst
。
我尝试过类似的东西
int deleteFirst()
{
first = this.first.getNext();
return first.getInfoo();
size--;
}
但它不起作用。有小费吗?
我很感激帮助。
如果你的deleteFirst
方法应该删除第一个Node
并返回它的值,那么你应该将this.first
指针移动到下一个,然后返回先前的this.first
值。
int deleteFirst() {
first = this.first.getInfoo();
this.first = this.first.getNext();
size--;
return first;
}