C++循环单链表删除连续相邻重复值
比如:1(头)->2->2->3->3->1->1(头) 去除以后的结果是1->2->3,注意头尾的1也要去掉一个。
#include "stdafx.h"
#include <iostream> using namespace std; struct tnode
{
tnode* next;
int value;
}; tnode* unique(tnode *head)
{
tnode* p = head;
while (p->next != head)
{
if (p->next->value == p->value)
{
tnode* temp = p->next;
p->next = temp->next;
delete temp;
}
else
{
p = p->next;
}
}
if (p->value == head->value)
{
p->next = head->next;
delete head;
head = p;
}
return head;
}; void print(tnode* head)
{
tnode* i = head;
while (i->next != head)
{
cout << i->value << " ";
i = i->next;
}
cout << i->value << endl;
} int _tmain(int argc, _TCHAR* argv[])
{
tnode* node1 = new tnode;
node1->value = ;
tnode* node2 = new tnode;
node2->value = ;
tnode* node3 = new tnode;
node3->value = ;
tnode* node4 = new tnode;
node4->value = ;
tnode* node5 = new tnode;
node5->value = ;
tnode* node6 = new tnode;
node6->value = ;
node1->next = node2;
node2->next = node3;
node3->next = node4;
node4->next = node5;
node5->next = node6;
node6->next = node1;
tnode* head = unique(node1);
print(head);
return ;
}
C++循环单链表删除连续相邻重复值的更多相关文章
- PTA 循环单链表区间删除 (15 分)
本题要求实现带头结点的循环单链表的创建和单链表的区间删除.L是一个带头结点的循环单链表,函数ListCreate_CL用于创建一个循环单链表,函数ListDelete_CL用于删除取值大于min小于m ...
- 简单约瑟夫环的循环单链表实现(C++)
刚刚接触C++以及数据结构,今天做了第一次尝试用C++和数据结构解决问题,问题是基于约瑟夫环问题的简单版. 先来看看约瑟夫环问题的介绍: 约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3.. ...
- C代码实现非循环单链表
C代码实现非循环单链表, 直接上代码. # include <stdio.h> # include <stdlib.h> # include <malloc.h> ...
- C语言版本:循环单链表的实现
SClist.h #ifndef __SCLIST_H__ #define __SCLIST_H__ #include<cstdio> #include<malloc.h> # ...
- c语言循环单链表
/************************************************************************* > File Name: singleLin ...
- c语言有头循环单链表
/************************************************************************* > File Name: singleLin ...
- 【c++版数据结构】之循环单链表的实现(带头结点以及尾节点)
所实现的循环单链表的结构例如以下图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill ...
- 带头结点的循环单链表----------C语言
/***************************************************** Author:Simon_Kly Version:0.1 Date: 20170520 D ...
- 循环单链表定义初始化及创建(C语言)
#include <stdio.h> #include <stdlib.h> /** * 含头节点循环单链表定义,初始化 及创建 */ #define OK 1; #defin ...
随机推荐
- 【Spark机器学习速成宝典】模型篇03线性回归【LR】(Python版)
目录 线性回归原理 线性回归代码(Spark Python) 线性回归原理 详见博文:http://www.cnblogs.com/itmorn/p/7873083.html 返回目录 线性回归代码( ...
- RF相关命令
结果输出 RF通过命令执行用例及自定义报告与日志的位置 1.执行整个项目下的所有用例: pybot 项目路径.例如: pybot D:\robot PS:robot项目里面所有用例 2.执行某个sui ...
- GO自定义类型与指针
指针 定义:将地址形象化的称为“指针”.将地址形象化的称为“指针”.意思是通过它能找到以它为地址的内存单元.一个指针变量指向了一个值的内存地址.意思是通过它能找到以它为地址的内存单元.一个指针变量指向 ...
- 阶段3 2.Spring_04.Spring的常用注解_5 自动按照类型注入
运行出现了空指针异常 @Autowired 注解出现的位置 AutoWired的代码 常用的就是写类上和方法上. 运行测试,刚才运行是一个空指针异常 也就是通过Autowired 这个accountD ...
- Python学习之==>迭代器
一.概要 在了解Python的数据结构时,容器(container).可迭代对象(iterable).迭代器(iterator).生成器(generator).列表/集合/字典推导式(list,set ...
- 用Node开发桌面应用:NW.js和Electron
NW.js和Electron对比:[http://tangiblejs.com/posts/nw-js-electron-compared] NW.js:[https://nwjs.io/] Elec ...
- SpringMVC以POST提交表单中文乱码解决方案。
在web.xml中添加字符集过滤器: <filter> <filter-name>characterEncodingFilter</filter-name> < ...
- iOS 开发】解决使用 CocoaPods 执行 pod install 时出现 - Use the `$(inherited)` flag ... 警告
公司项目在执行 pod install 的时候总是出现很多黄色的警告,因为是警告并不会影响项目的正常编译,一直没有在意,但是总是有很多警告看起来很不舒服,于是就花了点时间解决掉了,下面将解决方法记录下 ...
- python学习之模块-模块(一)
第五章 5.1 自定义模块 模块概念: 把一些常用的函数放在一个py文件中,这个文件就称之为模块. 模块的意义: 1.方便管理.让程序的解构更加清晰,实现功能的重复使用: 2.提升开发效率 ...
- django.db.migrations.exceptions.BadMigrationError: Migration tests in app bl
这个错误基本上都是 替换文件后才会出现的问题 因为你替换后他的日志文件没有完全替换的话,那么日志对应不到就会出现这样的问题, 一个模糊的处理办法:重新进行数据迁移:首先删除migrations中除去_ ...