LeetCode题解——203. 移除链表元素

题目

删除链表中等于给定值 val 的所有节点。

示例

输入: 1->2->6->3->4->5->6, val = 6
输出: 1->2->3->4->5

思路

    一般在链表中删除节点可以采用虚拟节点法,即在头结点之前在定义一个虚拟的节点,让其下一个节点指向头结点,代码如下:

	public ListNode removeElements(ListNode head, int val) {
        if (head == null){
            return null;
        }
        ListNode vr=new ListNode(0-val);
        vr.next=head;
        ListNode cur=vr;
        while (cur != null){
            if (cur.next != null && cur.next.val == val){
                cur.next=cur.next.next;
            }
            if (cur.next == null || cur.next.val != val){
                cur=cur.next;
            }
        }
        return vr.next;
    }

你可能感兴趣的:(LeetCode题解,leetcode)