【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

[leetcode] 【链表】 82. Remove Duplicates from Sorted List II

原创 2016年05月30日 17:28:26

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

For example,
Given 1->2->3->3->4->4->5, return 1->2->5.

Given 1->1->1->2->3, return 2->3.


题意

把链表中含有重复值元素的节点删掉,和Remove Duplicates from Sorted List
这一题的区别是这里要把重复的全部删除,比如
Given 1->2->3->3->4->4->5, return 1->2->5.

Given 1->1->1->2->3, return 2->3.


题解

两个指针,一个指向临时头,一个指向当前节点,如果没有重复元素,那么临时头和当前结点往后移动,如果有重复,把重复的都删掉,临时头的和被删掉的部分的下一个节点连接。语言描述不是很清晰,直接看代码会好点:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        if(!head) return head;
        ListNode newhead(-1);
        newhead.next=head;
        ListNode *prev=&newhead;
        ListNode *cur=head;
        while(cur)
        {
            bool isDuplicate=false;
            while(cur->next!=NULL&&cur->val==cur->next->val)
            {
                isDuplicate=true;
                ListNode *temp=cur;
                cur=cur->next;
                delete temp;
            }
            if(isDuplicate)
            {
                ListNode *temp=cur;
                cur=cur->next;
                prev->next=cur;
                delete temp;
            }
            else
            {
                prev=prev->next;
                cur=cur->next;
            }
        }
        return newhead.next;
    }
};


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

82. Remove Duplicates from Sorted List II-链表去重|指针

原题链接:82. Remove Duplicates from Sorted List II 【思路1】 public ListNode deleteDuplicates(ListNode h...

LeetCdoe Remove Duplicates from Sorted List II移掉重复链表中的元素

Remove Duplicates from Sorted List II <span style="color: rgb(51,51,51); font-fami
  • jgsj
  • jgsj
  • 2013-12-27 08:41
  • 67

LeetCode82——Remove Duplicates from Sorted List II

LeetCode82——Remove Duplicates from Sorted List II

LeetCode 82 - Remove Duplicates from Sorted List II

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distin

LeetCode --- 82. Remove Duplicates from Sorted List II

题目链接:Remove Duplicates from Sorted List II Given a sorted linked list, delete all nodes that have...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)