判断链表是否有回环 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操作

相关推荐
智者知已应修善业28 分钟前
【51单片机:两边向中间流水:即两边先点亮然后熄灭,次边的点亮再熄灭,直到最中间的两个点亮再熄灭,然后重复动作。】2023-3-4
c语言·c++·经验分享·笔记·嵌入式硬件·算法·51单片机
@卞2 小时前
ST 表相关练习题
数据结构·c++·算法
Vanranrr2 小时前
车机项目中的 Widget 设计反思:从“能用”到“好用”的改进方向
c语言·c++·架构
Ace_31750887762 小时前
拼多多关键字搜索接口逆向:从 WebSocket 实时推送解析到商品数据结构化重建
数据结构·websocket·网络协议
天选之女wow3 小时前
【Hard——Day4】25.K 个一组翻转链表
数据结构·算法·leetcode·链表
曾经的三心草3 小时前
Java数据结构-List-栈-队列-二叉树-堆
java·数据结构·list
橘子真甜~3 小时前
C/C++ Linux网络编程5 - 网络IO模型与select解决客户端并发连接问题
linux·运维·服务器·c语言·开发语言·网络·c++
wangjialelele5 小时前
详解mysql命令行操作与语言链接
c语言·数据库·c++·mysql·oracle
一直在努力的小宁5 小时前
《代码随想录-精华内容提取》07 二叉树
数据结构·算法·链表·面试
多彩电脑6 小时前
死循环逻辑检测
数据结构·python·算法·动态规划