Same code submitted in leetcode there accepted but here giving error

#include <bits/stdc++.h>
using namespace std;

class Node
{
public:
int data;
Node *next;

Node(int d)
{
    data = d;
    next = NULL;
}

};

// This function gets two arguments - the head pointers of the two linked lists
// Return the node which is the intersection point of these linked lists
int length(Node *head){
int count=0;
Node *temp=head;
while(temp!=0){
temp=temp->next;
count++;
}
return count;
}
// It is assured that the two lists intersect
Node *intersectionOfTwoLinkedLists(Node *l1, Node *l2)
{
int len1=length(l1);
int len2=length(l2);
int diff;
if(len1>=len2){

        diff=len1-len2;
        while(diff--){
            l1=l1->next;
        }
        }
    else{        
        diff=len2-len1;
        while(diff--){
        l2=l2->next;
        }
    }
    while(l1!=l2 && l1!=NULL && l2!=NULL){
        
        l1=l1->next;
        l2=l2->next;
    }
    if(l1==NULL || l2==NULL){
        return NULL;
        }
    return l1;

/*Code here*/

}

/*
*
*

  • You do not need to refer or modify any code below this.
  • Only modify the above function definition.
  • Any modications to code below could lead to a ‘Wrong Answer’ verdict despite above code being correct.
  • You do not even need to read or know about the code below.

*/

Node *buildList(unordered_map<int, Node *> &hash)
{
int x;
cin >> x;
Node *head = new Node(x);
Node *current = head;
hash[x] = head;
while (x != -1)
{
cin >> x;
if (x == -1)
break;
Node *n = new Node(x);
hash[x] = n;
current->next = n;
current = n;
}
current->next = NULL;
return head;
}

void printLinkedList(Node *head)
{
while (head != NULL)
{
cout << head->data << " ";
head = head->next;
}
cout << endl;
}

int main()
{
unordered_map<int, Node *> hash;
Node *l1 = buildList(hash);

Node *l2 = NULL;
int x;
cin >> x;
l2 = new Node(x);
Node *temp = l2;

while (x != -1)
{
    cin >> x;
    if (x == -1)
        break;
    if (hash.find(x) != hash.end())
    {
        temp->next = hash[x];
        break;
    }
    Node *n = new Node(x);
    temp->next = n;
    temp = n;
}

cout << "L1 - ";
printLinkedList(l1);
cout << "L2 - ";
printLinkedList(l2);

Node *intersectionPoint = intersectionOfTwoLinkedLists(l1, l2);
cout << "Intersection at node with data = " << intersectionPoint->data << endl;

return 0;

}

hi @kumawatnitesh093 submit directly it will get accepted here also, compilation will show error due to backend issue

I hope I’ve cleared your doubt. I ask you to please rate your experience here
Your feedback is very important. It helps us improve our platform and hence provide you
the learning experience you deserve.

On the off chance, you still have some questions or not find the answers satisfactory, you may reopen
the doubt.