剑指offer——链表-删除链表中重复的结点
来源:互联网 发布:淘宝折扣群是真的吗 编辑:程序博客网 时间:2024/06/07 06:22
题目:在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5
程序:
/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* deleteDuplication(ListNode* pHead) { if(pHead == NULL) return NULL; ListNode *pNode = pHead; ListNode *preNode = NULL; //指向 pNode 的前一个结点 // preNode->next = pNode; while(pNode != NULL) { ListNode *pNext = pNode->next; bool Tobedelete = false; if(pNext != NULL && pNode->val == pNext->val) Tobedelete = true; if(!Tobedelete) { //preNode->next = pNode; // 就因为这一句写错了,就多折腾了二十分钟啊!!!! preNode = pNode; pNode = pNode->next; } else{ int value = pNode->val; ListNode* TobeDeleNode = pNode; while(TobeDeleNode != NULL && TobeDeleNode->val ==value) { pNext = TobeDeleNode->next; delete TobeDeleNode; TobeDeleNode = NULL; TobeDeleNode = pNext; } if(preNode == NULL) // 第一个结点就删除了 { pHead = pNext; } else{ preNode->next = pNext; } pNode = pNext; } } return pHead; } };
分析:看着感觉确实不难,,,写起来来还是花了大约一个小时,切记眼高手低啊
阅读全文
3 0
- 剑指offer——链表-删除链表中重复的结点
- 《剑指offer》——删除链表中重复的结点
- 《剑指offer》——删除链表中重复的结点
- 剑指offer——删除链表中重复的结点
- 剑指offer——删除链表中重复的结点
- 剑指offer——56.删除链表中重复的结点
- 剑指offer—删除链表中重复的结点
- 剑指offer—删除链表中重复的结点
- 剑指offer--删除链表中重复的结点
- 《剑指offer》删除链表中重复的结点
- 剑指offer:删除链表中重复的结点
- [剑指offer]删除链表中重复的结点
- 剑指offer|删除链表中重复的结点
- 《剑指offer》:删除链表中重复的结点
- 剑指Offer:删除链表中重复的结点
- 《剑指offer》-删除链表中重复的结点
- 剑指offer: 删除链表中重复的结点
- 剑指offer 删除链表中重复的结点
- python学习笔记(一)——python语言基础
- 实验三 Linux文件管理
- SpringCloud(第 050 篇)Netflix Eureka 源码深入剖析(下)
- 第十三章 文件输入输出
- CSS权重优先级从高到低。。。
- 剑指offer——链表-删除链表中重复的结点
- 单独的数字
- spring入门级
- 我叫MT外传 v1.4.0 安卓版下载附攻略
- zabbix自动发现url以及对http返回状态码监控实现
- 八大排序算法的 Python 实现
- 文章标题
- 堆排序——C++实现
- Matlab三维曲面griddata插值后交叉验证或提取表面值