删除链表中重复的结点
来源:互联网 发布:有做淘宝代销成功的吗 编辑:程序博客网 时间:2024/05/06 21:24
</pre><pre name="code" class="cpp">//删除链表中重复的结点#include <iostream>using namespace std;struct ListNode {int val;struct ListNode *next;ListNode(int x) :val(x), next(NULL) {}};ListNode* deleteDuplication(ListNode* pHead){if(pHead==NULL||pHead->next==NULL)return pHead;ListNode* p;ListNode* q;ListNode* pre=NULL;bool toDelete=false;q=p=pHead;while(p!=NULL&&q!=NULL){q=p->next;if(q==NULL)toDelete=false;while (q!=NULL&&p->val==q->val){q=q->next;toDelete=true;} if(!toDelete) //无重复 { if(pre==NULL) { pre=p; pHead=pre; }else { pre->next=p; pre=p; } p=q; } else { p=q; } if(pre==NULL&&p==NULL&&toDelete) return NULL;toDelete=false;}pre->next=NULL;return pHead;}void main(){ListNode no1(1),no2(1),no3(3),no4(3),no5(3),no6(4),no7(4),no8(4);no1.next=&no2;no2.next=&no3;no3.next=&no4;no4.next=&no5;no5.next=&no6;no6.next=&no7;no7.next=&no8;ListNode* h=deleteDuplication(&no1);while(h!=NULL){cout<<h->val<<" ";h=h->next;}system("pause");}
题目描述
在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
<span style="font-size:18px;background-color: rgb(153, 255, 153);">感想:这题写了好久,来来回回将近一天吧。快被自己乱糟糟的逻辑给整哭了,忍住没抄剑指的答案,最后还好牛客里所有测试用例都过了。</span>
0 0
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- 删除链表中重复的结点
- openwrt系统中wan/lan 口配置分析
- Objective-C 对 URL 进行 URLEncode 编码
- Tomcat报too low setting for -Xss and illegal cyclic inheritance dependencies 内存溢出
- 04-find查询
- 不常见的数据类型---结构体,指针,全局数据
- 删除链表中重复的结点
- CSS3选择器(一)
- [PHP]php.ini参数详解
- CronTrigger表达式
- 8月小节
- 网址大全
- php &传址
- getContextPath、getServletPath、getRequestURI的区别
- Servlet&网络访问