单链表删除函数java
时间: 2024-12-12 22:24:09 浏览: 11
单链表中的删除函数通常涉及到找到要删除节点的位置,然后更新前一个节点的指针使其指向下一个节点。在Java中,这个过程可以分为以下几个步骤:
1. **检查是否为空或只有一个元素**:如果链表为空或只有一个节点,直接返回,因为无法删除首节点。
```java
if (head == null || head.next == null) {
return;
}
```
2. **遍历查找目标节点**:通过当前节点`prev`指向头节点,然后逐个比较直到找到待删除的`node`。
```java
Node prev = head;
while (prev.next != node) {
prev = prev.next;
}
```
3. **删除节点**:将`prev`的`next`指向`node`的下一个节点,使`node`从链表中移除。
```java
prev.next = node.next;
```
完整代码片段可能看起来像这样:
```java
public class ListNode {
int val;
ListNode next;
// constructor and getters...
}
public void deleteNode(ListNode node) {
if (head == null || head.next == null) {
return;
}
if (head == node) { // 删除头节点
head = head.next;
} else {
ListNode prev = head;
while (prev.next != node) {
prev = prev.next;
}
prev.next = node.next; // 移除指定节点
}
}
```
阅读全文