判断单链表中是否存在环


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

面试题 相关文章推荐
精伦电子Java笔试题
Jan 16 面试题
SQL SERVER面试资料
Mar 30 面试题
用友笔试题目
Oct 25 面试题
什么是.net的Remoting技术
Jul 08 面试题
简述DNS进行域名解析的过程
Dec 02 面试题
Linux中如何用命令创建目录
Dec 02 面试题
Linux文件操作命令都有哪些
Feb 27 面试题
几个常见的软件测试问题
Sep 07 面试题
中间件分为哪几类
Mar 14 面试题
配置管理计划的主要内容有哪些
Jun 20 面试题
介绍一下EJB的分类及其各自的功能及应用
Aug 23 面试题
什么是继承
Dec 07 面试题
我能否用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
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
JS代码放在head和body中的区别分析
2011/12/01 Javascript
js 3种归并操作的实例代码
2013/10/30 Javascript
JScript中的条件注释详解
2015/04/24 Javascript
nodeJs爬虫获取数据简单实现代码
2016/03/29 NodeJs
javascript实现简单计算器效果【推荐】
2016/04/19 Javascript
Spring MVC中Ajax实现二级联动的简单实例
2016/07/06 Javascript
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
2016/12/14 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
webpack v4 从dev到prd的方法
2018/04/02 Javascript
原生JS实现逼真的图片3D旋转效果详解
2019/02/16 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
微信小程序左滑删除实现代码实例
2019/09/16 Javascript
Python程序设计入门(3)数组的使用
2014/06/16 Python
Python使用functools模块中的partial函数生成偏函数
2016/07/02 Python
Python 描述符(Descriptor)入门
2016/11/20 Python
Python及Django框架生成二维码的方法分析
2018/01/31 Python
在Python中关于使用os模块遍历目录的实现方法
2019/01/03 Python
python实现桌面壁纸切换功能
2019/01/21 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
python中@property和property函数常见使用方法示例
2019/10/21 Python
基于Python实现拆分和合并GIF动态图
2019/10/22 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
优秀毕业生自我鉴定
2014/01/19 职场文书
放飞蜻蜓反思
2014/02/05 职场文书
标准化管理实施方案
2014/02/25 职场文书
中秋节主持词
2014/04/02 职场文书
公务员群众路线专题民主生活会发言材料
2014/09/17 职场文书
初中生300字旷课检讨书
2014/11/19 职场文书
八年级地理课件资料及考点知识分享
2019/08/30 职场文书
javascript Number 与 Math对象的介绍
2021/11/17 Javascript
Kubernetes控制节点的部署
2022/04/01 Servers