[C语言]初阶数据结构---链表习题

经典问题---链表带环问题

[C语言]初阶数据结构---链表习题_第1张图片

最后一个节点的next指针,本来应该指向空指针,但是现在指向前面的节点(非NULL),这样就构成了带环链表

例子1:

判断链表是否带环(力扣)

[C语言]初阶数据结构---链表习题_第2张图片

解题代码如下:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
bool hasCycle(struct ListNode *head) {
    struct ListNode*slow=head,*fast=head;
    while(fast&&fast->next)
    {
        slow=slow->next;
        fast=fast->next->next;
        if(fast==slow)
        {
            return true;
        }
    }
    return false;
}

如果fast指针为NULL或者fast->next指针为NULLÿ

你可能感兴趣的:(数据结构,c语言,链表)