算法-有序链表(三)根据值删除节点

算法-有序链表(三)根据值删除节点:

迭代法:

1
2
3
4
5
6
7
8
9
10
11
12
13
public ListNode deleteNode(ListNode head, int val) {
// 哨兵节点,用于处理删除头节点的情况
ListNode sentry = new ListNode(0, head);
// 遍历链表
for (ListNode current = sentry; current.next != null; current = current.next) {
if (current.next.val == val) {
// 删除节点
current.next = current.next.next;
break; // 删除后直接退出循环
}
}
return sentry.next; // 返回新链表的头节点
}

递归法:

1
2
3
4
5
6
7
8
9
public ListNode removeNode(ListNode p,int val) {
if (p == null) return null;
if (p.val == val){
return removeNode(p.next,val);
}else{
p.next = removeNode(p.next,val);
return p;
}
}

算法-有序链表(三)根据值删除节点
https://www.zheep.top/2024/12/04/算法-有序链表(三)根据值删除节点/
作者
西行寺岩羊
发布于
2024年12月4日
许可协议