题意是删除一个链表中所有重复的元素
比如 [1,1,2,2,3,3,4,5]—>[4,5]
struct ListNode{
int val;
ListNode* next;
ListNode():val(0),next(nullptr);
ListNode(x):val(x), next(nullptr);
ListNode(x, y):val(x),next(y);
}
ListNode* solution(ListNode* head){
//首先如果是空链表
if(!head){
return head;
}
//用临时变量 保存 head
ListNode* temHead = new(0, head); // temHead->next == head;
ListNode* cur = temHead;
//如果 满足 至少有两个节点
while(cur->next && cur->next->next){
if(cur->next->val == cur->next->next->val){
//保存当前起始 新一轮 重复元素的首元素
int x = cur->next->val;
//开始循环 把第二个、第三个 全部删掉
while(cur->next && cur->next->val == x){
cur->next = cur->next->next;
}
else{
cur = cur->next;
}
}
return temHead->next;
}
#####################################################