给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。
示例 1:

输入:head = [1,2,3,3,4,4,5] 输出:[1,2,5]
示例 2:

输入:head = [1,1,1,2,3] 输出:[2,3]
代码:
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode*dumy=new ListNode(0,head);
创建一个新的节点
ListNode*cur=dumy;
cur指向这个节点
while(cur->next&&cur->next->next){
下一个节点和下下个节点不为空的时候运行
if(cur->next->val==cur->next->next->val){
下一个节点的值等于下下个节点的值时
int x=cur->next->val;
x来记录节点的值
while(cur->next&&cur->next->val==x){
节点存在并且值为x时
cur->next=cur->next->next;
删除节点
}
}
else{
cur=cur->next;
否则继续遍历
}
}
return dumy->next;
返回链表
}
};
486

被折叠的 条评论
为什么被折叠?



