判断单链表中是否存在环


Posted in 面试题 onJuly 16, 2012
#include “stdafx.h”
typedef char eleType; // 定义链表中的数据类型
typedef struct listnode { // 定义单链表结构
eleType data;
struct listnode *next;
}node;

node *create(int n) { // 创建单链表,n为节点个数
node *p = (node *)malloc(sizeof(node));
node *head = p; head->data = ‘A’;
for(int i=’B; i p = (p->next = (node *)malloc(sizeof(node)));
p->data = i;
p->next = NULL;
}
return head;
}

void addCircle(node *head, int n) { // 增加环,将链尾指向链中第n个节点
node *q, *p = head;
for(int i=1; p->next; i++) {
if(i==n) q = p;
p = p->next;
}
p->next = q;
}

int isCircle(node *head) { // 这是笔试时需要写的最主要函数,其他函数可以不写
node *p=head,*q=head;
while( p->next && q->next) {
p = p->next;
if (NULL == (q=q->next->next)) return 0;
if (p == q) return 1;
}
return 0;
}

int main(int argc, char* argv[]) {
node *head = create(12);
addCircle(head, 8); // 注释掉此行,连表就没有环了
printf(“%d\n”, isCircle(head));
}

Tags in this post...

面试题 相关文章推荐
为什么使用接口?
Aug 13 面试题
请说出几个常用的异常类
Jan 08 面试题
JSF面试题:Jsf中的核心类用那些?有什么作用?LiftCycle六大生命周期是什么?
Jul 17 面试题
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
Jul 16 面试题
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
Feb 15 面试题
北京SQL新华信咨询
Sep 30 面试题
渗透攻击的测试步骤
Jun 07 面试题
SQL注入攻击的种类有哪些
Dec 30 面试题
C#软件工程师英语面试题
Jun 07 面试题
50道外企软件测试面试题
Aug 18 面试题
如何写出高质量、高性能的MySQL查询
Nov 17 面试题
介绍一些UNIX常用简单命令
Nov 11 面试题
我能否用void** 指针作为参数, 使函数按引用接受一般指针
Feb 16 #面试题
广州御银科技股份有限公司试卷(C++)
Nov 04 #面试题
不开辟用于交换数据的临时空间,如何完成字符串的逆序
Dec 02 #面试题
我有一个char * 型指针正巧指向一些int 型变量, 我想跳过它们。 为什么如下的代码((int *)p)++; 不行?
May 09 #面试题
*p++ 自增p 还是p所指向的变量
Jul 16 #面试题
编码实现字符串转整型的函数
Jun 02 #面试题
华为慧通笔试题
Apr 22 #面试题
You might like
php数组的概述及分类与声明代码演示
2013/02/26 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
2014/11/05 PHP
让你的网站可编辑的实现js代码
2009/10/19 Javascript
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
js时间比较示例分享(日期比较)
2014/03/05 Javascript
JavaScript打印网页指定区域的例子
2014/05/03 Javascript
AngularJS基础 ng-non-bindable 指令详细介绍
2016/08/02 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
2017/04/06 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
JavaScript数据结构之双向链表定义与使用方法示例
2017/10/27 Javascript
微信小程序wx:for循环的实例详解
2018/10/07 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
js canvas实现俄罗斯方块
2020/10/11 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
Python压缩解压缩zip文件及破解zip文件密码的方法
2015/11/04 Python
Django使用Celery异步任务队列的使用
2018/03/13 Python
PyQt5每天必学之切换按钮
2020/08/20 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
python3基于OpenCV实现证件照背景替换
2018/07/18 Python
python 实现矩阵上下/左右翻转,转置的示例
2019/01/23 Python
Pyqt5 基本界面组件之inputDialog的使用
2019/06/25 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
python中pickle模块浅析
2020/12/29 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
带病坚持工作事迹
2014/05/03 职场文书
简单的辞职信怎么写
2015/02/28 职场文书
董事长致辞
2015/07/29 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python