剑指offer 57 - 删除链表中重复的节点
来源:互联网 发布:mac自动登入灰色 编辑:程序博客网 时间:2024/06/09 22:06
#include <iostream>using namespace std;struct ListNode{int nValue;ListNode *nNext;};ListNode * createListNode( int a[],int length){ if(length == 0 )return NULL; ListNode *head = NULL; ListNode *rear = head; for(int i=0;i<length;i++) { ListNode *tmp =new ListNode[sizeof(ListNode)]; tmp->nValue = a[i]; if(rear == NULL) head = tmp; else rear->nNext = tmp; tmp->nNext = NULL; rear =tmp; } return head;}void deleteDuplication(ListNode **head){if( head == NULL || *head ==NULL)return ;ListNode *pHead = *head;ListNode *Pre = NULL; //重要点while(pHead !=NULL){bool needDelete =false;ListNode *pNext = pHead->nNext;if( pNext!=NULL && pHead->nValue ==pNext->nValue ) //出现重复 needDelete =true;if( !needDelete ){Pre = pHead;pHead =pHead->nNext;}else{int value = pNext->nValue; ListNode *pTobeDelete = pHead;while(pTobeDelete !=NULL && value ==pTobeDelete->nValue) { pNext = pTobeDelete->nNext; delete pTobeDelete; pTobeDelete = NULL; pTobeDelete = pNext ; }if(Pre == NULL) //首节点 *head =pNext;else Pre->nNext = pNext;pHead = pNext; }}}void printListNode(ListNode *head){ while( head !=NULL){cout<<head->nValue<<" ";head = head->nNext;}cout<<endl;}void main(){ListNode *head = NULL, *startNode = NULL;int a[] ={1,1,2,3,3,3,4,4,5,5};head = createListNode(a ,sizeof(a)/sizeof(int));printListNode(head); deleteDuplication(&head);printListNode(head);deleteDuplication(NULL);}
0 0
- 剑指offer-删除链表中重复的节点
- 剑指offer-----删除链表中重复的 节点
- 《剑指offer》删除链表中重复的节点
- 剑指Offer--删除链表中重复的节点
- 剑指offer-57:删除链表中重复节点
- 剑指offer 57 - 删除链表中重复的节点
- 《剑指Offer》面试题57:删除链表中重复的节点
- 剑指offer:删除重复的节点
- 8.剑指offer-删除链表中重复节点
- 剑指offer-删除链表中重复节点
- 剑指offer系列之五十八:删除链表中重复的节点
- 剑指offer(59):删除链表中重复的节点
- 剑指offer-----删除链表中重复的节点(java版)
- 【剑指offer】面试题18:删除链表中重复的节点
- 剑指Offer—56—删除链表中重复的节点
- 剑指offer之删除链表中重复的节点
- 【剑指offer-解题系列(57)】删除链表中重复的节点
- 剑指offer-删除链表重复节点
- python字典元素的删除
- 我的第一本Linux笔记(1)——linux常用命令
- Java加密解密器
- 安卓手机微信取数据库打开密码的代码
- HDU 2255奔小康赚大钱
- 剑指offer 57 - 删除链表中重复的节点
- Java设计模式
- 使用ztree插件实现前端树状结构
- Handler的学习(二)
- Android中的错误:Wrong orientation? No orientation specified, and the default is horizontal
- 抽象工厂模式
- 几种LANDSAT文件格式导入方式[未完]
- Windows环境下PHP环境搭建
- 直接利用Android手机破解微信加密数据库EnMicroMsg.db