美文网首页
033-判断是否为环链表

033-判断是否为环链表

作者: Woodlouse | 来源:发表于2020-06-11 21:21 被阅读0次

描述

在一个单链表中,判断是否存在环。

分析

设置两个指针p1p2遍历链表:

1,p1初始化为链表头节点,p2初始化链表头节点的下一个节点;

2,p1遍历链表的步长为1,p2遍历链表的步长为2

判断条件:

p1==p2,则有环;

p1==null或者p2->next==null*则无环;

实现

// Linked List Cycle
bool isLinkedListCycle(ListNode *head)
{
    if (!head || !head->next){
        return false;
    }
    
    ListNode *pStep1 = head; // 每次走一步的指针
    ListNode *pStep2 = head->next; // 每次走两步的指针
    
    // 判断指针是否会相遇
    while (pStep1 && pStep2->next) {
        if (pStep2 == pStep1) {
            return true;
        }
        pStep1 = pStep1->next;
        pStep2 = pStep2->next->next;
    }
    
    return false;
}

时间复杂度为O(n),空间复杂度为O(1)

相关文章

  • 033-判断是否为环链表

    描述 在一个单链表中,判断是否存在环。 分析 设置两个指针p1,p2遍历链表: 1,p1初始化为链表头节点,p2初...

  • java判断链表是否有环(两种方式实现)

    判断链表是否为带环链表 方法一、快慢指针移动判断 首先如何判断链表是否有环,这个时候首先需要知道链表是否为空,如果...

  • 常见的面试算法题

    判断链表是否有环

  • leetcode 141 判断链表中是否有环

    题目描述 给定一个链表,判断链表中是否有环。 进阶: 解题思路 无环链表,最后一个节点为nil,有环链表可以无限循...

  • 2022-02-27环形链表linked-list-cycle

    1.判断单链表是否有环 给你一个链表的头节点 head ,判断链表中是否有环。 如果链表中有某个节点,可以通过连续...

  • 141. 环形链表

    给定一个链表,判断链表中是否有环。

  • 141.环形链表

    给定一个链表,判断链表中是否有环。

  • 环形链表问题

    给定一个链表,判断链表中是否有环。存在环返回 true ,否则返回 false 分析: 该题可以理解为检测链表的某...

  • 链表之-环形链表

    在链表中如果有环,则很难遍历结束,最后超时,如果能够判断是否是环形链表,则简单很多给定一个链表,判断链表中是否有环...

  • 检测链表有环

    题目:如何判断一个单链表是否有环?若有环,如何找出环的入口节点。 一、单链表是否有环 思路分析: 单链表有环,是指...

网友评论

      本文标题:033-判断是否为环链表

      本文链接:https://www.haomeiwen.com/subject/mpmitktx.html