力扣 LeetCode 203. 移除链表元素(Day2:链表)

时间:2024-11-13 16:10:54

解题思路:

方法一:头节点和非头节点分开处理

方法二:定义一个dummy虚拟节点,后面的节点就可以采用相同的处理方式

注意:

cur需要指向要删除的节点的上一个节点,因为要越过这一个被删除的节点

class Solution {
    public ListNode removeElements(ListNode head, int val) {
        ListNode dummy = new ListNode();
        dummy.next = head;
        ListNode cur = dummy;

        while (cur.next != null) {
            if (cur.next.val == val) cur.next = cur.next.next;
            else cur = cur.next;
        }
        
        return dummy.next;
    }
}