删除链表中重复元素
来源:互联网 发布:二建做题软件哪个好 编辑:程序博客网 时间:2024/05/22 12:59
//删除链表中重复的元素//比如1 2 3 3 4 4//删除重复元素变为1 2#include <iostream>using namespace std;struct Node{Node(int x){value = x;next = NULL;}int value;Node *next;};void deleteDuplication(Node **head){if (head == NULL || *head == NULL)return;Node *pre = NULL;//当前节点前面的那个不重复节点,比如2就是一个不重复节点Node *cur = *head;while (cur){bool needDelete = false;if (cur->next && cur->value == cur->next->value)needDelete = true;if (!needDelete)//出现了不重复的节点{pre = cur;cur = cur->next;}else{int value = cur->value;Node *pNext = NULL;//这里不能直接pNext=cur->next,因为cur有可能为空while (cur && cur->value == value){pNext = cur->next;//保留cur的下一个节点delete cur;cur = pNext;}if (pre == NULL)//说明还没出现不重复的节点*head = cur;elsepre->next = cur;//将不重复的节点连接到当前节点}}}void print(Node *head){while (head){cout << head->value << " ";head = head->next;}cout << endl;}int main(){Node *p1 = new Node(1);Node *p2 = new Node(2);Node *p3 = new Node(3);Node *p4 = new Node(3);Node *p5 = new Node(4);Node *p6 = new Node(4);p1->next = p2;p2->next = p3;p3->next = p4;p4->next = p5;p5->next = p6;print(p1);deleteDuplication(&p1);print(p1);return 0;}
0 0
- 删除链表中重复元素
- 删除链表中重复元素
- 删除链表中重复元素
- 删除链表中重复元素
- 删除链表中重复元素
- 删除链表中重复的元素
- 删除排序链表中重复元素
- 删除链表中相邻重复元素
- 删除链表中重复的元素
- 删除链表中重复的元素
- 删除链表中重复的元素
- 删除链表中重复的元素
- 删除两个双向链表中重复元素
- java 删除linkedlist链表中重复元素
- LintCode_112_删除排序链表中重复的元素
- 对链表中重复元素的删除
- 删除重复元素
- List删除重复元素
- L0/L1/L2范数的联系与区别
- Myeclipse发布jar包
- 在Android开发中使用MVP模式
- Cannot create __weak reference in file using manual refrence counting
- 机器学习中相似度度量(2)
- 删除链表中重复元素
- sublime Python 完美配置
- UE4 C++与蓝图交互
- java.lang.ClassCastException: java.util.Arrays$ArrayList cannot be cast to java.util.ArrayList
- 【iOS】AFN网络请求通过获取cookies保持会话
- 【JavaScript】匿名函数和闭包
- react native 官方文档
- 大数据系列修炼-Scala课程33
- Android 动画相关