美文网首页
203. Remove Linked List Elements

203. Remove Linked List Elements

作者: 尚无花名 | 来源:发表于2019-04-22 00:42 被阅读0次

Remove all elements from a linked list of integers that have value val.

Example:

Input: 1->2->6->3->4->5->6, val = 6
Output: 1->2->3->4->5
这是道easy的题目,不过容易出bug。
首先最后的head不确定,所以这时要用dummyHead来帮助处理。
我每次战在当前节点看下一个节点是不是target val
如果不是,则把当前节点移到下一个节点。
如果是,则把下下个点点接到当前结点的next(当前节点的下一个被删掉了, 这时容易出bug,我把指针又往下移了一位就错了)。
然后如果当当前节点的next为null的时候就不继续了。

    public ListNode removeElements(ListNode head, int val) {
        ListNode dummy = new ListNode(0);
        dummy.next = head;
        ListNode node = dummy;
        while (node.next != null) {
            if (node.next.val == val) {
                node.next = node.next.next;  // 这时就不要往下挪了!!
            } else node = node.next; 
        }
        return dummy.next;
    }

相关文章

网友评论

      本文标题:203. Remove Linked List Elements

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