记录bug1

阅读 43

2023-11-12

目录

1.判断一个表是否是环形链表!

代码如下

解析如下

2.快指针的步数和慢指针的步数有什么影响(无图解析)

3.怎么找到环形链表的入环点

代码如下

解析如下


1.判断一个表是否是环形链表!

代码如下

bool hasCycle(struct ListNode *head) {
    struct ListNode* fast = head;
    struct ListNode* slow = head;
    while(fast && fast->next)
    {
        fast = fast->next->next;
        slow = slow->next;
        if(fast == slow)
        {
            return true;
        }
    }
    return false;
}

解析如下

2.快指针的步数和慢指针的步数有什么影响(无图解析)

 其实上面第一题 一个走两步一个走一步的方法是有一个公式的。

3.怎么找到环形链表的入环点

代码如下

struct ListNode *detectCycle(struct ListNode *head) {
    struct ListNode* fast = head,*slow = head;
    while(fast && fast->next)
    {
        fast = fast->next->next;
        slow = slow->next;
        if(fast == slow)
        {
            struct ListNode* cur = slow;
            while(cur != head)
            {
                cur = cur->next;
                head = head->next;
            }
            return head;
        }
    }
    return NULL;
    
}

解析如下

首先做这题前,我们需要画一个图

精彩评论(0)

0 0 举报