leetcode 日经贴,Cpp code -Linked List Cycle II

来源:互联网 发布:福州南威软件java 编辑:程序博客网 时间:2024/06/03 11:22

Linked List Cycle 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, *p2 = head->next;        while (p1 != p2 && p2) {            p1 = p1->next;            if (p2->next) {                p2 = p2->next->next;            } else {                p2 = p2->next;            }        }        if (p1 != p2) {            return NULL;        }        p1 = head;        p2 = p2->next;        while (p1 != p2) {            p1 = p1->next;            p2 = p2->next;        }        return p1;    }};


0 0
原创粉丝点击