时间:2021-05-19
1 问题
判断链表是否包含环
2 思路
2个指针,一个指针走一步,一个指针走2步,如果相遇则有,反之无。
3 代码实现
#include <stdio.h>#include <stdlib.h>#define true 1#define false 0;typedef struct node{ int value; struct node *next;}Node;/* *判断链表是否有环 */int isCircleList(Node *head){ if (head == NULL) { return false; } Node *first = NULL; Node *second = NULL; first = head; second = head; while (second != NULL && (second->next) != NULL && (second->next->next != NULL)) { first = first->next; second = second->next->next; if (first == second) { return true; } } return false;}int main(){ Node *head = NULL; Node *node1 = NULL; Node *node2 = NULL; Node *node3 = NULL; Node *node4 = NULL; Node *node5 = NULL; Node *node6 = NULL; Node *node7 = NULL; head = (Node *)malloc(sizeof(Node)); node1 = (Node *)malloc(sizeof(Node)); node2 = (Node *)malloc(sizeof(Node)); node3 = (Node *)malloc(sizeof(Node)); node4 = (Node *)malloc(sizeof(Node)); node5 = (Node *)malloc(sizeof(Node)); node6 = (Node *)malloc(sizeof(Node)); node7 = (Node *)malloc(sizeof(Node)); if (head == NULL || node1 == NULL || node2 == NULL || node3 == NULL || node4 == NULL || node5 == NULL || node6 == NULL || node7 == NULL) { printf("malloc fail\n"); return false; } // node7<-node6 <-node5 // | | //head->node1->node2->node3->node4 head->value = 0; head->next = node1; node1->value = 1; node1->next = node2; node2->value = 2; node2->next = node3; node3->value = 3; node3->next = node4; node4->value = 4; node4->next = node5; node5->value = 5; node5->next = node6; node6->value = 6; node6->next = node7; node7->value = 7; node7->next = node2; int result = isCircleList(head); if (result) { printf("list have circle\n"); } else { printf("list do not have circle\n"); } return true;}4 运行结果
list have circle总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
剑指offer:合并两个排序的链表,Python实现题目描述输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。吐槽本来
主要内容:单链表的基本操作删除重复数据找到倒数第k个元素实现链表的反转从尾到头输出链表找到中间节点检测链表是否有环在不知道头指针的情况下删除指定节点如何判断两个
本文实例讲述了PHP实现找出链表中环的入口节点。分享给大家供大家参考,具体如下:问题一个链表中包含环,请找出该链表的环的入口结点。解决思路第一步,找环中相汇点。
在有些情况下,利用try…except来捕捉异常可以起到代替if…else的作用。比如在判断一个链表是否存在环的leetcode题目中,初始代码是这样的#Def
今天刷《剑指offer》的时候碰到这样一道题:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4X4矩阵:12345678910