Home Linked List Write a code to check if 2 linked lists are identical.

# Write a code to check if 2 linked lists are identical.

0 comment

Question: Write a program to check if 2 linked lists are identical?

#### Method 1(Iterative):-

To Determine if both Linked lists are identical, we need to traverse both lists simultaneously, and while traversing we need to compare data of each node.

Implementation

//returns 1 if both lists are identical or returns 0
int areIdenticalLinkedList(struct node * list1, struct node * list2)
{
while(1)
{
// return 1 if both are NULL
if(list1 == NULL && list2 == NULL)
return 1;

// return 0 if one of them is NULL
if(list1 == NULL || list2 == NULL)
return 0;

if(list1 -> data != list2 -> data)
return 0;

list1 = list1 -> next;
list2 = list2 -> next;
}
}


#### Method2( Recursive):-

//returns 1 if both lists are identical or returns 0
int areIdenticalLinkedListRecursive(struct node * list1, struct node * list2)
{
// return 1 if both are same
if (list1 == NULL && list2 == NULL)
return 1;

// return 0 if one of them is different
if (list1 == NULL || list2 == NULL)
return 0;

if (list1 -> data != list2 -> data)
return 0;

// the recursive call
return areIdenticalLinkedListRecursive(list1 -> next, list2 -> next);
}


It may seem that both recursive and iterative implementation are the same but the iterative version is recommended since it offers better control and the recursive implementation maintains a stack of all the callbacks.

0 comment

#### You may also like

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More