描述
删除链表中所有重复节点
解决
遍历,遇到相同的就一直加加。
/**
* 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 zz(INT_MIN);
zz.next = head;
ListNode *temp = head, *res = &zz;
while ( temp && temp -> next)
{
if (temp -> val != temp -> next -> val)
{
res = res -> next;
temp = temp -> next;
}
else
{
while (temp -> next && temp -> val == temp -> next -> val)
{
temp = temp -> next;
}
res -> next = temp -> next;
temp = temp -> next;
}
}
return zz.next;
}
};