您的位置:首页 > 其它

leetcode第一刷_Remove Duplicates from Sorted List II

2014-05-10 09:59 330 查看
删掉链表中的重复节点,如果是所有val只保留一份的话很简单,如果要把重复的val的节点都删掉的话,需要保存pre节点,每当遇到这种要保存pre节点的问题,就该注意head节点可能会被删除,边界控制好就没问题了。

class Solution {
public:
ListNode *deleteDuplicates(ListNode *head) {
if(head == NULL || head->next == NULL)
return head;
ListNode *pre = NULL, *start = head, *end;
while(start){
while(start&&start->next&&start->val != start->next->val){
pre = start;
start = start->next;
}
end = start;
while(end&&end->next&&end->val == end->next->val)
end = end->next;
if(end!=start&&end){
if(pre)
pre->next = end->next;
else{
head = end->next;
}
}else{
break;
}
start = end->next;
}
return head;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: