判断单链表中是否存在环


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

面试题 相关文章推荐
J2SDK1.5与J2SDK5.0有什么区别
Sep 19 面试题
您熟悉ORM(Object-Relation Mapping)吗?请谈谈您所理解的ORM
Feb 08 面试题
What is the purpose of Void class? Void类的作用是什么?
Oct 31 面试题
中软Java笔试题
Nov 11 面试题
查询优化的一般准则有哪些
Mar 08 面试题
武汉东之林科技有限公司机试
Sep 17 面试题
介绍一下如何利用路径遍历进行攻击及如何防范
Jan 19 面试题
Hashtable 添加内容的方式有哪几种,有什么区别?
Apr 08 面试题
shell程序中如何注释
Jan 28 面试题
int和Integer有什么区别
May 25 面试题
Servlet的生命周期
Aug 25 面试题
顺丰快递Java软件工程师面试题
Jul 31 面试题
我能否用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 文件上传模型,支持多文件上传
2009/08/13 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
ThinkPHP3.1之D方法实例详解
2014/06/20 PHP
修改destoon会员公司的伪静态中的com目录的方法
2014/08/21 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
利用PHP命令行模式采集股票趋势信息
2016/08/09 PHP
为JavaScript添加重载函数的辅助方法
2010/07/04 Javascript
客户端限制只能上传jpg格式图片的js代码
2010/12/09 Javascript
javascript复制对象使用说明
2011/06/28 Javascript
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
node.js中的fs.closeSync方法使用说明
2014/12/17 Javascript
JavaScript实现三阶幻方算法谜题解答
2014/12/29 Javascript
理解JavaScript表单的基础知识
2016/01/25 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
2016/01/26 Javascript
快速解决jquery.touchSwipe左右滑动和垂直滚动条冲突
2016/04/15 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
微信小程序 本地存储及登录页面处理实例详解
2017/01/11 Javascript
微信小程序 MD5的方法详解及实例代码
2017/03/10 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
vue编译打包本地查看index文件的方法
2018/02/23 Javascript
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
javascript的delete运算符知识点总结
2019/11/19 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python3.2中的字符串函数学习总结
2015/04/23 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
如何定义一个可复用的服务
2014/09/30 面试题
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
合作投资意向书
2014/04/01 职场文书
学生党员公开承诺书
2014/05/28 职场文书
暗恋桃花源观后感
2015/06/12 职场文书
如何利用Python实现n*n螺旋矩阵
2022/01/18 Python