删除有序链表中重复的元素-I
作者:
乡村守望者
,
2022-04-18 19:16:45
,
所有人可见
,
阅读 190
删除有序链表中重复的元素-I
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
// write code here
//头结点
ListNode *h = new ListNode(-1);
h->next = head;
//当下一个节点和下下个节点存在的时候
while(h->next&&h->next->next)
{
//比较值 相等就删除下下个,保留下个
if(h->next->val==h->next->next->val)
{
h->next->next = h->next->next->next;
}//若是不等就跳到下一个元素比较
else
{
h = h->next;
}
}
return head;
}
};
删除有序链表中重复的元素-II
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
// write code here
//设置头结点
ListNode *dummy = new ListNode(-1);
dummy->next = head;
ListNode *pre = dummy;
while(pre->next)//若是有下个元素
{
//如果有重复 如果下下个有元素 看下个和下下个是否相等 若相等
if(pre->next->next&&pre->next->val==pre->next->next->val){
int t = pre->next->val;
//将相等的都删掉
while(pre->next&&pre->next->val==t)
{
pre->next = pre->next->next;
}
}
else//不相等的话就跳下一个元素
{
pre = pre->next;
}
}
return dummy->next;
}
};