`
steven-zhou
  • 浏览: 213345 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

判断链表是否有环

阅读更多
/**
 * if has loop return 1 else return 0
 */
static int has_loop(List *list)
{
    List *pFast;
    List *pSlow;

    pFast = pSlow = list;

    if (pFast != NULL && pFast->next != NULL) {
        pFast = pFast->next->next;
    } else {
        return 0;
    }

    while (pFast != pSlow) {
        if (pFast != NULL && pFast->next != NULL)
            pFast = pFast->next->next;
        else
            break;
        pSlow = pSlow->next;
    }

    if (pFast == pSlow)
        return 1;
    else
        return 0;
}
分享到:
评论

相关推荐

    royIdoodle#fe-interview-chaos#003.判断链表是否有环1

    判断链表是否有环LeetCode原题难度: 简单解题* Definition for singly-linked list.* function ListNod

    python判断链表是否有环的实例代码

    ### Python 判断链表是否有环的知识点解析 #### 一、背景与问题描述 链表是一种常见的线性数据结构,在计算机科学中有着广泛的应用。它由一系列节点组成,每个节点包含一个存储元素和一个指向下一个节点的引用。...

    双指针法判断链表有环-Java 版

    附件是使用双指针发判断链表有环的代码实现,在Java中,判断单链表是否有环的经典方法是使用Floyd的“龟兔赛跑”算法,也称为快慢指针法。这种方法利用两个指针,一个每次走一步(称为慢指针),另一个每次走两步...

    快慢指针判断链表是否有环-go 语言实现

    在 main 函数中,我们创建了一个有环的链表,并调用 hasCycle 函数来判断它是否有环,最后输出结果。 请注意,这个实现假设链表节点的 Next 指针永远不会指向 nil 以外的其他无效内存地址,否则可能会导致运行时...

    快慢指针法判断链表是否有环-go语言实现

    在 main 函数中,我们创建了一个有环的链表,并调用 hasCycle 函数来判断它是否有环,最后输出结果。 请注意,这个实现假设链表节点的 Next 指针永远不会指向 nil 以外的其他无效内存地址,否则可能会导致运行时...

    判断单链表中是否存在环

    3. **检测是否相遇**:通过检查两个指针是否相遇来判断链表中是否存在环。如果两个指针在某一点相遇,则表示链表中有环;如果快指针到达了链表尾部,则表示链表为无环链表。 ### 实现代码分析 在给定的部分内容中...

    快慢指针法判断单链表有环

    在Java中,判断单链表是否有环的经典方法是使用Floyd的“龟兔...在Main类中,我们创建了一个链表,并故意引入了一个环(最后一个节点指向第二个节点),然后调用hasCycle方法来判断链表是否有环,并打印出相应的结果。

    剑指offer之判断链表是否包含环

    1 问题 判断链表是否包含环 2 思路 2个指针,一个指针走一步,一个指针走2步,如果相遇则有,反之无。... *判断链表是否有环 */ int isCircleList(Node *head) { if (head == NULL) { return false; } Node *fi

    双指针法判断链表有环-go语言实现

    在 main 函数中,我们创建了一个有环的链表,并调用 hasCycle 函数来判断它是否有环,最后输出结果。 请注意,这个实现假设链表节点的 Next 指针永远不会指向 nil 以外的其他无效内存地址,否则可能会导致运行时...

    判断链表是否相交的几种算法1

    链表是数据结构中常见的一种线性...总之,判断链表是否相交的问题可以通过多种算法来解决,每种方法都有其优缺点。在实际应用中,应根据具体需求,如时间复杂度、空间复杂度和是否允许修改链表结构等,选择合适的算法。

    链表相关问题的完整代码

    **1、判断链表是否有环** **2、寻找环的入口点** **3、计算环的节点数** **4、计算(有环)链表的节点数** **5、找出环中距任意一点最远的节点** **6、判断两个无环链表是否相交** **7、寻找两个链表的相交的节点**

    算法:给定一个链表,判断链表中是否存在环

    检测链表中是否存在环是链表操作中一个常见的问题。 #### 三、快慢指针算法 快慢指针算法是一种用于检测链表中是否存在环的有效方法,也称为“龟兔赛跑”算法。这种方法使用两个指针,一个快指针(每次移动两步)...

    js代码-6.1 判断链表是否成环

    代码可能包括定义链表节点结构、初始化链表、以及实现判断链表是否有环的函数。`README.txt`文件可能包含了对代码的简单说明或使用指南。 例如,`main.js`中的代码可能如下: ```javascript // 定义链表节点 ...

    编程判断两个链表是否相交

    - **调整思路:** 当链表可能存在环时,需要先判断链表是否含有环。对于解法三,可以通过快慢指针的方法来检测环的存在。具体地,在将两个链表拼接后,使用快慢指针从第二个链表的头部出发,如果最终快慢指针相遇,...

    【双指针】–leetcode(141)–给定一个链表,判断链表中是否有环(python版)

    总结起来,解决链表环检查的问题,双指针技术是一种有效且直观的方法,它可以优雅地处理这类问题,避免了深度优先搜索或回溯等可能导致额外时间和空间复杂度的策略。通过理解和熟练运用这种技巧,可以提升我们在解决...

    判断一个链表是否有环,并指出换的头结点(O(n)时间复杂度)

    供大家交流使用,欢迎大家交流指对。。。欢迎大家下载。。

    算法链表.docx

    本文将深入探讨链表的几个关键操作:链表反转、合并有序列表、新增节点、删除节点、判断链表是否有环以及找到链表的中间节点。我们将使用Java语言进行讨论。 首先,链表不同于数组,它不依赖于内存中的连续空间。每...

    判断链表中是否存在环的方法及证明

    这里,我们主要探讨如何判断链表中是否存在环,以及如果存在环,如何找到环的起始节点。 首先,我们可以使用“快慢指针”(Floyd's Cycle-Finding Algorithm,也称龟兔赛跑算法)来检测链表中的环。快指针每次移动...

    python判断单向链表是否包括环,若包含则计算环入口的节点实例分析

    了解如何判断链表中是否存在环以及计算环的入口节点是数据结构和算法面试中常见的问题,这有助于理解链表的基本操作和逻辑推理。通过掌握这种方法,你可以有效地解决类似的问题,并优化对链表结构的理解。在实际应用...

Global site tag (gtag.js) - Google Analytics