【leetcode】Linked List Cycle

问题:

给定个单链表,判断该链表是否存在环。

分析:

这个问题是见的非常多的题目,问题本身而言,技巧性很强,或者说思路很巧妙,这里要说的不是这个题目本身,而是说这种技巧,在很多的地方是用的到的,比如,在寻找单链表的中间节点的时候,就可以用这种形式,一个走两步,一个走一步的形式,来获得中间节点。
//
 bool hasCycle(ListNode *head) {
        if(head == NULL)
        return false;
        ListNode *fast = head;
        ListNode *slow = head;
        while(NULL != fast && NULL != fast->next)
        {
            fast = fast->next->next;
            slow = slow->next;
            if(slow == fast)
            return true;
        }
        return false;
    }


你可能感兴趣的:(LeetCode,算法,链表,面试题,单链表)