#include<bits/stdc++.h>
using namespace std;
struct node{
int data;
node *next;
};
int print(node *head){
int cnt = 0;
node *q = head;
while(q != NULL){
cnt++;
q = q->next;
}
return cnt;
}
node *addnode(node *head, int val){
node *p = new node();
p->data = val;
p->next = NULL;
return p;
}
node *meeting_point(node *head, node *head1){
int len1 = print(head);
int len2 = print(head1);
if(len1 > len2){
while(len1 > len2)
{
head = head->next;
len1--;
}
}
else if(len1 < len2)
{
while(len2 > len1)
{
head1 = head1->next;
len2--;
}
}
cout<<"Your meeting point is : "<<endl;
while(head != NULL && head1 != NULL){
if(head->data == head1->data)
return head;
else{
head = head->next;
head1 = head1->next;
}
}
return NULL;
}
int main(){
node *head = NULL;
head = addnode(head,10);
head->next = addnode(head,20);
head->next->next = addnode(head,30);
head->next->next->next = addnode(head,40);
head->next->next->next->next = addnode(head,50);
head->next->next->next->next->next = addnode(head,60);
head->next->next->next->next->next->next = addnode(head,70);
head->next->next->next->next->next->next->next = addnode(head,80);
head->next->next->next->next->next->next->next->next = addnode(head,90);
head->next->next->next->next->next->next->next->next->next = addnode(head,100);
head->next->next->next->next->next->next->next->next->next->next = addnode(head,101);
head->next->next->next->next->next->next->next->next->next->next->next = addnode(head,102);
node *head1 = NULL;
head1 = addnode(head1,1);
head1->next = addnode(head1,2);
head1->next->next = addnode(head1,3);
head1->next->next->next = addnode(head1,4);
head1->next->next->next->next = head->next->next->next->next->next->next->next->next->next;
cout<<endl<<"Your another linked list is : "<<endl;
cout<<meeting_point(head,head1)->data;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RydWN0IG5vZGV7CglpbnQgZGF0YTsKCW5vZGUgKm5leHQ7Cn07CmludCBwcmludChub2RlICpoZWFkKXsKCWludCBjbnQgPSAwOwoJbm9kZSAqcSA9IGhlYWQ7Cgl3aGlsZShxICE9IE5VTEwpewoJCWNudCsrOwoJCXEgPSBxLT5uZXh0OwoJfQoJcmV0dXJuIGNudDsKfQpub2RlICphZGRub2RlKG5vZGUgKmhlYWQsIGludCB2YWwpewoJbm9kZSAqcCA9IG5ldyBub2RlKCk7CglwLT5kYXRhID0gdmFsOwoJcC0+bmV4dCA9IE5VTEw7CiAgICByZXR1cm4gcDsKfQpub2RlICptZWV0aW5nX3BvaW50KG5vZGUgKmhlYWQsIG5vZGUgKmhlYWQxKXsKCWludCBsZW4xID0gcHJpbnQoaGVhZCk7CglpbnQgbGVuMiA9IHByaW50KGhlYWQxKTsKCWlmKGxlbjEgPiBsZW4yKXsKCQl3aGlsZShsZW4xID4gbGVuMikKCQl7CgkJCWhlYWQgPSBoZWFkLT5uZXh0OwoJCQlsZW4xLS07CgkJfQoJfQoJZWxzZSBpZihsZW4xIDwgbGVuMikKCSAgICAgewoJCSAgIHdoaWxlKGxlbjIgPiBsZW4xKQoJCSAgIHsKCQkJICBoZWFkMSA9IGhlYWQxLT5uZXh0OwoJCQkgIGxlbjItLTsKCQkgICB9CgkgICAgIH0KCSAgICAgY291dDw8IllvdXIgbWVldGluZyBwb2ludCBpcyA6ICI8PGVuZGw7CgkgICAgIHdoaWxlKGhlYWQgIT0gTlVMTCAmJiBoZWFkMSAhPSBOVUxMKXsKCSAgICAgCWlmKGhlYWQtPmRhdGEgPT0gaGVhZDEtPmRhdGEpCgkgICAgIAkJcmV0dXJuIGhlYWQ7CgkgICAgIAllbHNlewoJICAgICAJCWhlYWQgPSBoZWFkLT5uZXh0OwoJICAgICAJCWhlYWQxID0gaGVhZDEtPm5leHQ7CgkgICAgIAl9CgkgICAgIH0KCSAgICAgcmV0dXJuIE5VTEw7CiAgIH0KCmludCBtYWluKCl7Cglub2RlICpoZWFkID0gTlVMTDsKCWhlYWQgPSBhZGRub2RlKGhlYWQsMTApOwoJaGVhZC0+bmV4dCA9IGFkZG5vZGUoaGVhZCwyMCk7CgloZWFkLT5uZXh0LT5uZXh0ID0gYWRkbm9kZShoZWFkLDMwKTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQgPSBhZGRub2RlKGhlYWQsNDApOwoJaGVhZC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dCA9IGFkZG5vZGUoaGVhZCw1MCk7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0ID0gYWRkbm9kZShoZWFkLDYwKTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQgPSBhZGRub2RlKGhlYWQsNzApOwoJaGVhZC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dCA9IGFkZG5vZGUoaGVhZCw4MCk7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0ID0gYWRkbm9kZShoZWFkLDkwKTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQgPSBhZGRub2RlKGhlYWQsMTAwKTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQgPSBhZGRub2RlKGhlYWQsMTAxKTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQgPSBhZGRub2RlKGhlYWQsMTAyKTsKCSAKCW5vZGUgKmhlYWQxID0gTlVMTDsKCWhlYWQxID0gYWRkbm9kZShoZWFkMSwxKTsKCWhlYWQxLT5uZXh0ID0gYWRkbm9kZShoZWFkMSwyKTsKCWhlYWQxLT5uZXh0LT5uZXh0ID0gYWRkbm9kZShoZWFkMSwzKTsKCWhlYWQxLT5uZXh0LT5uZXh0LT5uZXh0ID0gYWRkbm9kZShoZWFkMSw0KTsKCWhlYWQxLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0ID0gaGVhZC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dC0+bmV4dDsKCWNvdXQ8PGVuZGw8PCJZb3VyIGFub3RoZXIgbGlua2VkIGxpc3QgaXMgOiAiPDxlbmRsOwoJY291dDw8bWVldGluZ19wb2ludChoZWFkLGhlYWQxKS0+ZGF0YTsKCXJldHVybiAwOwp9