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

相关推荐
疯狂打码的少年1 小时前
【数据结构】图的存储结构:邻接矩阵与邻接表
数据结构·笔记
203号居民1 小时前
LeetCode hot 100 —41. 缺失的第一个正数
数据结构·算法·leetcode
2401_862880825 小时前
数据结构 --- 栈
c语言·数据结构·算法
额额额对了7 小时前
数据结构:二叉树
c语言·数据结构·算法
qeen877 小时前
【数据结构】红黑树的算法原理解析与实现
开发语言·数据结构·c++·算法·红黑树
m0_547486668 小时前
《数据结构与算法(Python语言版)》全套PPT课件2026
数据结构·算法
hold?fish:palm8 小时前
27 合并两个有序链表
数据结构·链表
个 人 练 习 生9 小时前
数据结构入门:算法复杂度
开发语言·数据结构·经验分享·学习·程序人生·算法
月华路9 小时前
Guava 图数据结构 graph 从基础概念到原理分析
java·数据结构·guava·图搜索
_wxd66611 小时前
排序—插入排序(Insertion Sort)
数据结构