请写出一段代码,要求实现对linkedlist的增删改查功能的完整实现,要求使用java语言编写
时间: 2023-08-16 09:07:05 浏览: 90
Java单链表增删改查的实现
好的,以下是一个简单的 Java 代码实现,实现了对链表的增删改查功能:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public class LinkedList {
private ListNode head;
// 构造函数,初始化链表为空
public LinkedList() {
head = null;
}
// 在链表尾部插入一个节点
public void insert(int val) {
ListNode newNode = new ListNode(val);
if (head == null) {
head = newNode;
} else {
ListNode cur = head;
while (cur.next != null) {
cur = cur.next;
}
cur.next = newNode;
}
}
// 删除指定位置上的节点
public boolean remove(int index) {
if (index < 0) {
return false;
}
if (index == 0) {
ListNode tmp = head;
head = head.next;
tmp.next = null;
return true;
}
ListNode cur = head;
for (int i = 0; i < index - 1; i++) {
if (cur.next == null) {
return false;
}
cur = cur.next;
}
ListNode tmp = cur.next;
if (tmp == null) {
return false;
}
cur.next = tmp.next;
tmp.next = null;
return true;
}
// 修改指定位置上节点的值
public boolean update(int index, int val) {
ListNode cur = head;
for (int i = 0; i < index; i++) {
if (cur == null) {
return false;
}
cur = cur.next;
}
if (cur == null) {
return false;
}
cur.val = val;
return true;
}
// 查找指定位置上节点的值
public int get(int index) {
ListNode cur = head;
for (int i = 0; i < index; i++) {
if (cur == null) {
return -1;
}
cur = cur.next;
}
if (cur == null) {
return -1;
}
return cur.val;
}
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insert(1);
list.insert(2);
list.insert(3);
System.out.println("get(0) = " + list.get(0));
System.out.println("get(1) = " + list.get(1));
System.out.println("get(2) = " + list.get(2));
list.update(1, 4);
System.out.println("get(0) = " + list.get(0));
System.out.println("get(1) = " + list.get(1));
System.out.println("get(2) = " + list.get(2));
list.remove(1);
System.out.println("get(0) = " + list.get(0));
System.out.println("get(1) = " + list.get(1));
}
}
```
这个代码实现了链表的增删改查功能,包括:
- 在链表尾部插入一个节点。
- 删除指定位置上的节点。
- 修改指定位置上节点的值。
- 查找指定位置上节点的值。
其中,链表的节点使用类 `ListNode` 定义,包含了节点的值 `val` 和指向下一个节点的指针 `next`。链表的类定义为 `LinkedList`,其中包含了链表头节点的指针 `head`,以及上述四个操作的具体实现。在 `main` 函数中,我们创建了一个链表对象 `list`,并对其进行了一些操作,来验证链表的实现是否正确。
阅读全文