剑指offer-删除链表重复节点
来源:互联网 发布:chrome json 插件 编辑:程序博客网 时间:2024/05/19 18:18
#include <iostream>using namespace std;struct Node{int data;Node* next;Node(int x):data(x),next(NULL){}};void PushBack(Node** pHead,int x){if(*pHead==NULL){*pHead=new Node(x);}else{Node* cur=*pHead;while(cur->next){cur=cur->next;}cur->next=new Node(x);}}void Print(Node* pHead){Node* cur=pHead;while(cur){cout<<cur->data<<" ";cur=cur->next;}cout<<endl;}//删除有序链表重复的值void DeleteReValue(Node** pHead){if(pHead==NULL||*pHead==NULL||(*pHead)->next==NULL) //链表为空或只有一个节点直接返回return;Node* prev=NULL; //标记当前结点前一个Node* cur=*pHead; //标记当前结点while(cur){Node* pNext=cur->next; //标记下一个结点if(pNext && pNext->data!=cur->data) //若当前结点与下一个结点不重复{prev=cur; //标记当前结点前一个结点cur=pNext; //当前结点走下一个}else if(pNext && pNext->data==cur->data) //若当前结点与下一个结点重复{Node* del=cur; //从当前节点开始删除重复节点int value=cur->data;while(del && del->data==value) //删除停止时间是直到删除的节点值不为重复结点的值{pNext=del->next; //用pNext做中间转换值delete del;del=pNext;} //完成以后pNext指向不重复节点值的第一个if(prev)prev->next=pNext; //若头结点不重复,将以前标记的前一个节点直接与pNext连接else*pHead=pNext; //头结点重复则改正头节点cur=pNext; //当前结点从pNext再次开始} //cur=pNext;}}int main(){Node* pHead=NULL;PushBack(&pHead,0);PushBack(&pHead,0);PushBack(&pHead,1);PushBack(&pHead,2);PushBack(&pHead,3);PushBack(&pHead,3);PushBack(&pHead,4);PushBack(&pHead,4);PushBack(&pHead,5);PushBack(&pHead,6);PushBack(&pHead,6);PushBack(&pHead,6);Print(pHead);DeleteReValue(&pHead);Print(pHead);system("pause");return 0;}
阅读全文
0 0
- 剑指offer-删除链表重复节点
- 剑指offer:删除重复的节点
- 剑指offer-删除链表中重复的节点
- 剑指offer-57:删除链表中重复节点
- 8.剑指offer-删除链表中重复节点
- 剑指offer-----删除链表中重复的 节点
- 《剑指offer》删除链表中重复的节点
- 剑指offer-删除链表中重复节点
- 剑指Offer--删除链表中重复的节点
- 剑指offer系列之55:删除链表汇总重复的节点
- 剑指offer 57 - 删除链表中重复的节点
- 剑指offer系列之五十八:删除链表中重复的节点
- 剑指offer(59):删除链表中重复的节点
- 《剑指Offer》面试题57:删除链表中重复的节点
- 剑指offer-----删除链表中重复的节点(java版)
- 【剑指offer】面试题18:删除链表中重复的节点
- 剑指Offer—56—删除链表中重复的节点
- 剑指offer之删除链表中重复的节点
- Android系统源码编译之4--unbutu下安装git repo并下载源码 下载7zip
- 全面剖析Redis Cluster原理和应用
- freecodecamp项目---twitch API
- Win10中护眼色
- div内部的div margin-top 上层div动了 本身自身没动
- 剑指offer-删除链表重复节点
- Codeforces Round #371(Div.1)
- 利用Javascript制作网页特效(时间特效)
- 完美下载Android源码Ubuntu版
- Listener监听器
- 开博了。。
- Redis单线程架构
- JAVA 8函数式编程(二):每个函数都是可以传递的对象
- Linux内建命令及Bash Shell