leetcode-142. 环形链表 II

 

leetcode-142. 环形链表 II

 

// /**
//  * Definition for singly-linked list.
//  * struct ListNode {
//  *     int val;
//  *     ListNode *next;
//  *     ListNode(int x) : val(x), next(NULL) {}
//  * };
//  */
class Solution {
public:
    ListNode *detectCycle(ListNode *head) {
        if(!head||!head->next)
            return NULL;
        ListNode* p1 = head;
        ListNode* p2 = head;
        while(p1&&p2&&p2->next){
            p1 = p1->next;
            p2 = p2->next->next;
            if(p1==p2)
                break;
        }
        // if(p1==NULL||p2==NULL)
        //     return NULL;
        if(p2==NULL||p2->next==NULL)
            return NULL;
        p1 = head;
        while(p1&&p2&&p1!=p2){
            p1 = p1->next;
            p2 = p2->next;
        }
        return p1;
    }
};

 

上一篇:FLINK基础(142):DS流与表转换(8) Handling of Changelog Streams(3) toChangelogStream


下一篇:财神见习社兼职副业赚钱的365个项目(142):油条早点摊