Java链表的基本运算与实现
时间: 2023-08-15 17:16:09 浏览: 41
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 node = new ListNode(val);
if (head == null) {
head = node;
} else {
ListNode curr = head;
while (curr.next != null) {
curr = curr.next;
}
curr.next = node;
}
}
// 删除操作
public void delete(int val) {
if (head == null) {
return;
}
if (head.val == val) {
head = head.next;
} else {
ListNode prev = head;
ListNode curr = head.next;
while (curr != null && curr.val != val) {
prev = curr;
curr = curr.next;
}
if (curr != null) {
prev.next = curr.next;
}
}
}
// 查找操作
public boolean search(int val) {
ListNode curr = head;
while (curr != null) {
if (curr.val == val) {
return true;
}
curr = curr.next;
}
return false;
}
}
```
以上代码实现了链表的基本操作,包括插入、删除和查找。在插入时,如果链表为空,则将新节点作为头节点;否则找到链表的尾节点并将新节点插入到其后面。在删除时,如果要删除的节点是头节点,则将头指针指向下一个节点;否则找到要删除节点的前驱节点并将其next指针指向要删除节点的下一个节点。在查找时,从头节点开始遍历整个链表,查找要查找的值是否存在于链表中。