给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。
返回删除后的链表的头节点。
链接:https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/
public ListNode deleteNode(ListNode head, int val) {
if(head == null) return null;
//虚构头节点
ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode cur = head;//当前节点
ListNode pre = dummy;//前一个节点
while(cur != null) {
if(cur.val == val) {
pre.next = cur.next;//删除当前节点,即上一个节点指向当前节点的下一个节点
break;
}
pre = cur;
cur = cur.next; //指向下一个节点
}
return dummy.next;
}