用Java实现
时间: 2024-02-24 22:57:03 浏览: 53
以下是一个 Java 实现的例子:
```java
class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
public ListNode deleteNode(ListNode head, int val) {
if (head == null) {
return null;
}
if (head.val == val) {
ListNode tmp = head.next;
head.next = null;
return tmp;
}
ListNode prev = head;
ListNode cur = head.next;
while (cur != null && cur.val != val) {
prev = cur;
cur = cur.next;
}
if (cur != null) {
prev.next = cur.next;
cur.next = null;
}
return head;
}
```
这个函数与前面 C++ 的实现类似。首先特判空链表和要删除的节点是头节点的情况。然后使用双指针法,找到要删除的节点的前一个节点。最后修改指针和删除节点即可。需要注意的是,Java 中需要手动将被删除节点的 next 指针设为 null,以避免内存泄漏。