ListNode* FindNode(ListNode* head, int N) {
/*Write your code here.
*Don't write main().
*Don't take input, it is passed as function argument.
*Don't print output.
*Taking input and printing output is handled automatically.
*/
bool cycle = 0;
ListNode*slow = head;
ListNode*fast = head;
ListNode*temp = NULL;
ListNode*k = NULL;
if(fast == NULL && fast->next == NULL){
return NULL;
}
while(fast != NULL && fast->next != NULL){
fast = fast->next->next;
slow = slow->next;
if(fast == NULL && fast->next == NULL){
return NULL;
}
if(slow == fast){
slow = head;
temp = fast;
}
while(temp->next!=slow->next){
temp = temp->next;
slow = slow->next;
}
k = slow->next;
bool cycle = 1;
}
if(cycle == 1){
ListNode*slow1 = head;
ListNode*fast1 = head;
for(int i=1;i<N;i++){
fast1 = fast1->next;
}
while(fast1!=k && fast1->next!=k){
fast1 = fast1->next;
slow1 = slow1->next;
}
return slow1;
}
else{
return NULL;
}
}
TGlzdE5vZGUqIEZpbmROb2RlKExpc3ROb2RlKiBoZWFkLCBpbnQgTikgewoJLypXcml0ZSB5b3VyIGNvZGUgaGVyZS4gCgkqRG9uJ3Qgd3JpdGUgbWFpbigpLgoJKkRvbid0IHRha2UgaW5wdXQsIGl0IGlzIHBhc3NlZCBhcyBmdW5jdGlvbiBhcmd1bWVudC4KCSpEb24ndCBwcmludCBvdXRwdXQuCgkqVGFraW5nIGlucHV0IGFuZCBwcmludGluZyBvdXRwdXQgaXMgaGFuZGxlZCBhdXRvbWF0aWNhbGx5LgoJKi8gCiAgICBib29sIGN5Y2xlID0gMDsKICAgIExpc3ROb2RlKnNsb3cgPSAgaGVhZDsKICAgIExpc3ROb2RlKmZhc3QgPSAgaGVhZDsKICAgIExpc3ROb2RlKnRlbXAgPSBOVUxMOwogICAgTGlzdE5vZGUqayA9IE5VTEw7CiAgICBpZihmYXN0ID09IE5VTEwgJiYgZmFzdC0+bmV4dCA9PSBOVUxMKXsKICAgICAgICByZXR1cm4gTlVMTDsKICAgIH0KICAgIHdoaWxlKGZhc3QgIT0gTlVMTCAmJiBmYXN0LT5uZXh0ICE9IE5VTEwpewogICAgICAgIGZhc3QgPSBmYXN0LT5uZXh0LT5uZXh0OwogICAgICAgIHNsb3cgPSBzbG93LT5uZXh0OwogICAgICAgIGlmKGZhc3QgPT0gTlVMTCAmJiBmYXN0LT5uZXh0ID09IE5VTEwpewogICAgICAgIHJldHVybiBOVUxMOwogICAgCX0KICAgICAgICBpZihzbG93ID09IGZhc3QpewogICAgICAgICAgICBzbG93ID0gaGVhZDsKICAgICAgICAgICAgdGVtcCA9ICBmYXN0OwoJCX0KICAgICAgICB3aGlsZSh0ZW1wLT5uZXh0IT1zbG93LT5uZXh0KXsKICAgICAgICAgICAgdGVtcCA9IHRlbXAtPm5leHQ7CiAgICAgICAgICAgIHNsb3cgPSBzbG93LT5uZXh0OwogICAgICAgIH0KICAgICAgIAlrID0gc2xvdy0+bmV4dDsKICAgICAgICBib29sIGN5Y2xlID0gMTsKICAgIH0KICAgIGlmKGN5Y2xlID09IDEpewogICAgICAgIExpc3ROb2RlKnNsb3cxID0gIGhlYWQ7CiAgICAJTGlzdE5vZGUqZmFzdDEgPSAgaGVhZDsKICAgICAgICBmb3IoaW50IGk9MTtpPE47aSsrKXsKICAgICAgICAgICAgZmFzdDEgPSBmYXN0MS0+bmV4dDsKICAgICAgICB9CiAgICAgICAgd2hpbGUoZmFzdDEhPWsgJiYgZmFzdDEtPm5leHQhPWspewogICAgICAgICAgICBmYXN0MSA9IGZhc3QxLT5uZXh0OwogICAgICAgICAgICBzbG93MSA9IHNsb3cxLT5uZXh0OyAKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNsb3cxOwogICAgfQogICAgZWxzZXsKICAgICAgIHJldHVybiBOVUxMOyAKICAgIH0KCQp9