删除链表的节点
public ListNode deleteNode(ListNode head, int val) {
if (head == null) return head;
if (head.val == val) {
head = head.next;
return head;
}
ListNode pre = head, node = head.next;
while (node != null) {
if (node.val == val) {
pre.next = node.next;
node.next = null;
break;
}
else {
pre = node;
node = node.next;
}
}
return head;
}
class Solution {
public ListNode deleteNode(ListNode head, int val) {
ListNode dummy = new ListNode(-1);
dummy.next = head;
ListNode pre = dummy, p = head;
while (p != null && p.val != val) {
pre = p;
p = p.next;
}
if (p == null) return head;
if (p.val == val) {
pre.next = p.next;
p.next = null;
}
return dummy.next;
}
}