美文网首页
203. 移除链表元素

203. 移除链表元素

作者: 梦想黑客 | 来源:发表于2020-03-08 15:56 被阅读0次

题目描述

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

示例:

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

解法

/**
 * Definition for singly-linked list. public class ListNode { int val; ListNode
 * next; ListNode(int x) { val = x; } }
 */
class Solution {
    public ListNode removeElements(ListNode head, int val) {
        // 迭代法:双指针prev、curr
        ListNode dummy = new ListNode(0);
        dummy.next = head;

        ListNode prev = dummy;
        ListNode curr = dummy.next;

        while (curr != null) {
            if (curr.val == val) {
                // 如果是要删除的元素则,指向它的下一个,prev不变
                prev.next = curr.next;
            } else {
                // 修改prev指向下一个
                prev = prev.next;
            }

            curr = prev.next;
        }

        return dummy.next;
    }
}

相关文章

网友评论

      本文标题:203. 移除链表元素

      本文链接:https://www.haomeiwen.com/subject/esqklhtx.html