leetcode Linked List Cycle

判断链表中有没有环。

一个指针跑一次,一个指针跑两次,相遇就是有环

/**

 * Definition for singly-linked list.

 * struct ListNode {

 *     int val;

 *     ListNode *next;

 *     ListNode(int x) : val(x), next(NULL) {}

 * };

 */

class Solution {

public:

    bool hasCycle(ListNode *head) 

    {

        if (!head || !head -> next) return false;

        ListNode *l1 = head, *l2 = head -> next;

        while(l1 && l2)

        {

            if (l1 == l2)

                return true;

            l1 = l1 -> next; 

            l2 = l2 -> next;

            if (!l2)

                break;

            l2 = l2 -> next;

        }

        return false;

    }

};

 

你可能感兴趣的:(LeetCode)