您的位置:首页 > 其它

141.linked list cycle

2017-08-21 15:57 393 查看
/*

判断输入的链表是否是循环链表

思路:利用快慢指针,一个是p = p->next;另外一个是q = q->next;如果两个指针相遇了,则说明是循环链表

*/

//解法一   22%  6ms

/**

 * Definition for singly-linked list.

 * struct ListNode {

 *     int val;

 *     struct ListNode *next;

 * };

 */

bool hasCycle(struct ListNode *head) {

    struct ListNode* p;

    struct ListNode* q;

    p = head;

    q = head;

    if(!head)

        return false;

    while(p!=NULL&&q!=NULL&&q->next)

    {

            p = p->next;

            q = q->next->next;

        if(p==q)

            return true;

    }

    return false;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: