判断链表是否有回环 C


主要是思维,用快慢指针好一些,就是一个指针跑的快一个指针跑的慢,如果有回环,那么快的指针先完成一圈后会与慢指针再次相遇

c 复制代码
bool Node_ifhasCycle(struct Node *head) {
    Node* t = head;
    Node* q = head;

    while(t != NULL && q != NULL && q->next != NULL){
        t = t->next;
        q = q->next->next;

        if(t == q) return true;
    }

    return false;
}

一定要注意就是先判断指针是不是空再执行->next操作

相关推荐
YSF2017_32 分钟前
C语言-12-静态库制作
c语言·开发语言
北顾笙98028 分钟前
day29-数据结构力扣
数据结构
Shadow(⊙o⊙)1 小时前
C++常见错误解析2.0
开发语言·数据结构·c++·后端·学习·算法
数智化精益手记局1 小时前
4m变更管理实战:拆解4m变更管理四大要素的管控功能与常见难题
大数据·数据结构·数据库·人工智能·精益工程
agilearchitect2 小时前
Matlab导入Excel表格教程:从基础到进阶全攻略
数据结构·其他·matlab·excel
xieliyu.2 小时前
Java手搓数据结构:从零模拟实现单向无头非循环链表
java·数据结构·学习·链表
爱写代码的倒霉蛋2 小时前
2021天梯赛L2-4真题解析
数据结构·算法
✎ ﹏梦醒͜ღ҉繁华落℘2 小时前
Makefile(四)--gcc 和gdb
c语言·gnu·gcc和gdb
white-persist2 小时前
逆向入门经典题:从 IDA 反编译坑点到 Python 解题详细分析解释
c语言·开发语言·数据结构·python·算法·逆向·安全架构
北顾笙9803 小时前
day30-数据结构力扣
数据结构·算法·leetcode