LeetCode之Remove Duplicates from Sorted List II

来源:互联网 发布:淘宝优惠券群怎么加入 编辑:程序博客网 时间:2024/05/22 03:03

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.

/** * 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||!head->next) return head; ListNode *p, *q; ListNode *sentry=new ListNode(0); sentry->next=head;  p = sentry; q = NULL; while (p->next){ q = p->next; while(q->next &&q->val == q->next->val){ q = q->next; } if(p->next!=q)    p->next=q->next; else    p=q;     } return sentry->next;    }};


0 0