#include <memory>
#include <iostream>
#include <chrono>
#include <thread>
using namespace std; struct ListNode{
int val;
shared_ptr<ListNode> next;
}; bool InsertNode(shared_ptr<ListNode>& insertPos,int val)
{
shared_ptr<ListNode> node(new ListNode);
if (!node)
return false;
node->val = val;
node->next = NULL;
insertPos->next = node;
insertPos = node; return true;
} bool InitLinkList(shared_ptr<ListNode>& head)
{
if ( (!head) || NULL != head->next )
return false; head->val = 1;
shared_ptr<ListNode> tail = head; InsertNode(tail, 1);
InsertNode(tail, 2);
InsertNode(tail, 3);
InsertNode(tail, 3); return true;
} void CoutLinkList(const shared_ptr<ListNode>& head)
{
for (shared_ptr<ListNode> node = head;
node; node = node->next)
{
cout << node->val << " ";
}
cout << endl;
} shared_ptr<ListNode> removeDuplicates(shared_ptr<ListNode>& head)
{
if (head == NULL)
{
return NULL;
} shared_ptr<ListNode> node = head;
while(node->next != NULL){
if(node->val == node->next->val){
shared_ptr<ListNode> tmp = node->next;
node->next = node->next->next;
}else
{
node = node->next;
}
}
return head;
} int main()
{
shared_ptr<ListNode> head(new ListNode);
InitLinkList(head); CoutLinkList(head); head = removeDuplicates(head); CoutLinkList(head); return 0;
}

  

C++11 删除链表重复数值的更多相关文章

  1. leetcode 203. Remove Linked List Elements 、83. Remove Duplicates from Sorted List 、82. Remove Duplicates from Sorted List II(剑指offer57 删除链表中重复的结点)

    203题是在链表中删除一个固定的值,83题是在链表中删除重复的数值,但要保留一个:82也是删除重复的数值,但重复的都删除,不保留. 比如[1.2.2.3],83题要求的结果是[1.2.3],82题要求 ...

  2. 删除链表中的重复元素:不留&留一个&删除一个

    不留: [抄题]: 给定一个排序链表,删除所有重复的元素只留下原链表中没有重复的元素. [思维问题]: 给出 1->2->3->3->4->4->5->nul ...

  3. 链表:删除链表中重复的结点(java实现)

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...

  4. 剑指offer——python【第56题】删除链表中的重复节点

    题目描述 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表1->2->3->3->4->4->5 处理后 ...

  5. [PHP] 算法-删除链表中重复的结点的PHP实现

    删除链表中重复的结点: 1.定义两个指针pre和current 2.两个指针同时往后移动,current指针如果与后一个结点值相同,就独自往前走直到没有相等的 3.pre指针next直接指向curre ...

  6. 【Java】 剑指offer(18) 删除链表中重复的结点

    本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集   题目 在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重 ...

  7. 《剑指offer》第十八题(删除链表中重复的结点)

    // 面试题18(二):删除链表中重复的结点 // 题目:在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重复 // 结点被删除之后,链表如图3.4(b)所示. #include &l ...

  8. 剑指offer——面试题18.1:删除链表中重复的节点

    // 面试题18(二):删除链表中重复的结点 // 题目:在一个排序的链表中,如何删除重复的结点?例如,在图3.4(a)中重复 // 结点被删除之后,链表如图3.4(b)所示. #include &l ...

  9. 【剑指offer】删除链表中重复的节点,C++实现(链表)

    0.简介       本文是牛客网<剑指offer>笔记. 1.题目 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针.例如,链表1-> ...

随机推荐

  1. JavaScript 在不刷新或跳转页面的情况下改变当前浏览器地址栏上的网址

    JavaScript 在不刷新或跳转页面的情况下改变当前浏览器地址栏上的网址 var stateObject = {}; var title = "改变后的网址的标题"; var ...

  2. WCF数据通讯

    Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NET Fra ...

  3. 用ping命令来模拟traceroute的功能

    ping -n 1 -r 9 qq.com 正在 Ping qq.com [163.177.65.160] 具有 32 字节的数据:来自 163.177.65.160 的回复: 字节=32 时间=11 ...

  4. 树莓派make 360wifi2报错

    输入make命令后报错 make: *** /lib/modules/3.10.25+/build: No such file or directory. Stop. 系统缺少编译模块所需要的内核头文 ...

  5. 使用虚幻引擎中的C++导论(三-反射系统与迭代器)

    使用虚幻引擎中的C++导论(三) 第一,这篇是我翻译的虚幻4官网的新手编程教程,原文传送门,有的翻译不太好,但大体意思差不多,请支持我O(∩_∩)O谢谢. 第二,某些细节操作,这篇文章省略了,如果有不 ...

  6. Uiautomator自动编译运行脚本

    Uiautomator的编译运行过程需要输入好几个命令,太麻烦. 花了点时间写了个简单的bat.方便多了.id输入当前使用的SDK ID号(android list target命令可以查看到),cl ...

  7. java应用死循环排查方法或查找程序消耗资源的线程方法(面试)

    今天遇到一个面试,怎么在一堆线程中查找一个死循环? 如果遇到线上应用cpu飙升,并出现OutOfMemery怎么办? 首先线上应用的jvm配置要养成良好的习惯,增加一下配置则可以在jvm发生 oom的 ...

  8. css设置中文字体(font-family:"黑体")后样式失效问题

    做项目时偶遇的一诡异问题,同样的代码,在ff和IE7以上页面显示正常,但IE6无论怎么改都不起作用,本来以为是IE6的某些浮动bug所致,结果弄了很长时间也不行,后来不经意间把原来设定的font-fa ...

  9. mysql问题小结

    1.数据表存在,但查询时提示不存在 原因:默认情况下,mysql在windows对表名大小不敏感(lower_case_table_names=1),在linux上大小敏感(lower_case_ta ...

  10. 并查集(HDOJ 1856)

    并查集   英文:Disjoint Set,即“不相交集合” 将编号分别为1…N的N个对象划分为不相交集合, 在每个集合中,选择其中某个元素代表所在集合. 常见两种操作: n       合并两个集合 ...