java - 添加和删除第一个节点
问题描述
我想创建一个方法来在列表的开头添加一个元素并删除第一个。
这是我的Node
班级(我只使用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;
}
推荐阅读
- java - 如何通过插件获取 Eclipse 代码模板存储?
- c# - 异步发送邮件 C#
- python - 在 Robot Framework 中使用模板(数据驱动)时如何计算测试用例?
- laravel - laravel response()->download 为非图像格式(如 pdf、zip 等)返回空正文
- xml - 如何引用基本 XML 架构中的属性
- android - Android 设备管理器无法启动设备
- firebase - 如何使用自定义角色更新 Firestore 规则
- python - PyTorch 中的 tensorflow make_template
- javascript - 如何用D3.js创建一个圆组一个组织圆图像并用曲线连接?
- if-statement - 有没有办法仅在满足某些条件时才生成新变量?