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

相关推荐
Wyc7240921 分钟前
数据结构1
数据结构
zhangrelay21 分钟前
三分钟云课实践速通--C/C++程序设计--
linux·c语言·c++·笔记·学习·ubuntu
lcj251132 分钟前
【数据结构精讲】堆与二叉树从底层原理到代码落地:堆的构建 / 调整 / 排序 + 二叉树遍历 / 操作(附完整 C++ 源码 + LeetCode 题解)
数据结构·c++·leetcode
努力努力再努力wz33 分钟前
【MySQL 进阶系列】C/C++ 如何通过客户端库访问 MySQL?从连接原理到 API 调用流程详解(附完整demo代码)
服务器·c语言·数据结构·数据库·c++·b树·mysql
xuhaoyu_cpp_java34 分钟前
单调栈(算法)
java·数据结构·经验分享·笔记·学习·算法
代码中介商1 小时前
C/C++ 图形化界面编程入门:EasyX 完全指南
c语言
诙_1 小时前
C++数据结构--排序算法
数据结构·算法·排序算法
Aurorar0rua2 小时前
CS50 x 2024 Notes C - 08
c语言·开发语言·学习方法
许彰午2 小时前
02-手写链表、栈、队列——不依赖任何集合框架
数据结构·链表·面试
MegaDataFlowers2 小时前
141.环形链表
数据结构·链表