判断单链表中是否存在环


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...

面试题 相关文章推荐
Ibatis如何使用动态表名
Jul 12 面试题
输入一行文字,找出其中大写字母、小写字母、空格、数字、及其他字符各有多少
Apr 15 面试题
将"引用"作为函数返回值类型的格式、好处和需要遵守的规则
Feb 09 面试题
介绍一下内联、左联、右联
Dec 31 面试题
ddl,dml和dcl的含义
May 08 面试题
视图的作用
Dec 19 面试题
简述DNS进行域名解析的过程
Dec 02 面试题
Python文件操作的面试题
Jun 22 面试题
final, finally, finalize的区别
Mar 01 面试题
Java面试题汇总
Dec 06 面试题
UNIX文件名称有什么规定
Mar 25 面试题
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
May 30 面试题
我能否用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
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
php好代码风格的阶段性总结
2016/06/25 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
验证码按回车不变解决方法
2013/03/29 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
jquery.map()方法的使用详解
2015/07/09 Javascript
js仿微博实现统计字符和本地存储功能
2015/12/22 Javascript
jQuery表格插件datatables用法详解
2020/11/23 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
2017/07/27 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
python3实现UDP协议的服务器和客户端
2017/06/14 Python
Python实现识别手写数字大纲
2018/01/29 Python
python实现自动发送邮件
2018/06/20 Python
对python 命令的-u参数详解
2018/12/03 Python
python中时间模块的基本使用教程
2019/05/14 Python
解决pycharm最左侧Tool Buttons显示不全的问题
2019/12/17 Python
Django重设Admin密码过程解析
2020/02/10 Python
设计师个人求职信范文
2014/02/02 职场文书
小学生常见病防治方案
2014/06/06 职场文书
安全目标责任书
2014/07/22 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
2014年商场国庆节活动策划方案
2014/09/16 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
2016秋季校长开学典礼致辞
2015/11/26 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python
Python办公自动化之教你如何用Python将任意文件转为PDF格式
2021/06/28 Python
关于k8s环境部署mysql主从的问题
2022/03/13 MySQL
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers