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

相关推荐
洛_尘14 小时前
数据结构--7:排序(Sort)
java·数据结构
2401_8414956414 小时前
【LeetCode刷题】找到字符串中所有字母异位词
数据结构·python·算法·leetcode·数组·滑动窗口·找到字符串中所有字母异位词
头发还没掉光光15 小时前
C/C++类型转换
c语言·开发语言·c++
爪哇部落算法小助手16 小时前
爪哇周赛 Round 1
c语言·c++·算法
元亓亓亓16 小时前
考研408--数据结构--day2--顺序表及其增删改查
数据结构·考研·顺序表·408
dllxhcjla16 小时前
数据结构与算法 第一天
数据结构·算法
Kuo-Teng16 小时前
LeetCode 141. Linked List Cycle
java·算法·leetcode·链表·职场和发展
洛_尘16 小时前
数据结构--9:反射、枚举以及lambda表达式(了解即可)
java·开发语言·数据结构
CoderBob16 小时前
【EmbeddedGUI】简易Page开发模式
c语言·图像处理·单片机
njxiejing17 小时前
Python pandas基础:Series数据操作详解
数据结构·pandas