CN-18. Delete LinkedList Node
- tags
- LinkedList, Recursion
- source
- leetcode-cn
Edge Cases
Solution 1 - Single/Two Pointer
class Solution {
public ListNode deleteNode(ListNode head, int val) {
ListNode dummy = new ListNode(-1);
dummy.next = head;
ListNode p = dummy;
while (p.next != null) {
if (p.next.val == val) {
p.next = p.next.next;
break;
}
p = p.next;
}
return dummy.next;
}
}
Complexity
Solution 2 - Recursion
class Solution {
public ListNode deleteNode(ListNode head, int val) {
if (head == null) return null;
if (head.val == val) return head.next;
head.next = deleteNode(head.next, val);
return head;
}
}
Complexity