判断单链表中是否存在环


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

面试题 相关文章推荐
请说出几个常用的异常类
Jan 08 面试题
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?用contains来区分是否有重复的对象。还是都不用
Jul 30 面试题
Java里面如何把一个Array数组转换成Collection, List
Jul 26 面试题
上海方立数码笔试题
Oct 18 面试题
指针和引用有什么区别
Jan 13 面试题
Sony C++笔试题
Mar 10 面试题
中海讯通笔试题
Sep 15 面试题
采用怎样的方法保证数据的完整性
Dec 02 面试题
linux面试题参考答案(8)
Apr 19 面试题
系统管理员的职责包括那些?管理的对象是什么?
Jan 18 面试题
EntityManager都有哪些方法
Nov 01 面试题
Java Servlet的主要功能和作用是什么
Feb 14 面试题
我能否用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
Banner程序
2006/10/09 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
超级24小时弹窗代码 24小时退出弹窗代码 100%弹窗代码(IE only)
2010/06/11 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
2013/09/06 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
Jquery 实现弹出层插件
2015/01/28 Javascript
javascript实现倒计时(精确到秒)
2015/06/26 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
Vue Router的懒加载路径的解决方法
2018/06/21 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
在vue中嵌入外部网站的实现
2020/11/13 Javascript
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python实现好友全头像的拼接实例(推荐)
2017/06/24 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
详解Django之admin组件的使用和源码剖析
2018/05/04 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
Python分布式进程中你会遇到的问题解析
2019/05/28 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
python PIL/cv2/base64相互转换实例
2020/01/09 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
Python参数传递机制传值和传引用原理详解
2020/05/22 Python
PyQT5 实现快捷键复制表格数据的方法示例
2020/06/19 Python
eVitamins日本:在线购买折扣维生素、补品和草药
2019/04/04 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
《秋游》教学反思
2014/04/24 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
个人买房协议书范本
2014/10/06 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
我的长征观后感
2015/06/09 职场文书