You are on page 1of 12

4/10/2019 Concatenating two linked lists in C.

(/blog/)

Concatenating two linked lists in C.


 May 25, 2017  C (/blog/tag/c/?tag=c) LINKED LIST (/blog/tag/linked-list/?tag=linked-list) DATA STRUCUTRE
(/blog/tag/data-strucutre/?tag=data-strucutre)  18044

Become an Author

(/blog/submit-article/)

Download Our App.

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 1/12
4/10/2019 Concatenating two linked lists in C.

(https://play.google.com/store/apps/details?id=com.blogsdope&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-
Mar2515-1)

Previous:
1. Linked lists in C (Singly linked list) (https://www.codesdope.com/blog/article/linked-lists-
in-c-singly-linked-list/)

2. Linked list traversal using while loop and recursion


(https://www.codesdope.com/blog/article/linked-list-traversal-using-while-loop-and-
recursi/)

Make sure that you are familiar with the concepts explained in the article(s) mentioned above
before proceeding further.

We will proceed further by taking the linked list we made in the previous article.

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 2/12
4/10/2019 Concatenating two linked lists in C.

#include <stdio.h>
#include <stdlib.h>

struct node
{
int data;
struct node *next;
};

int main()
{
struct node *prev,*head,*p;
int n,i;
printf ("number of elements:");
scanf("%d",&n);
head=NULL;
for(i=0;i<n;i++)
{
p=malloc(sizeof(struct node));
scanf("%d",&p->data);
p->next=NULL;
if(head==NULL)
head=p;
else
prev->next=p;
prev=p;
}
return 0;
}

Concatenating or joining two linked lists is not at all a difficult task. We just need to follow
some very simple steps and the steps to join two lists (say ‘a’ and ‘b’) are as follows:

1. Traverse over the linked list ‘a’ until the element next to the node is not NULL.

2. If the element next to the current element is NULL (a->next == NULL) then change the
element next to it to ‘b’ (a->next = b).

That’s it. Let’s code up these steps.

void concatenate(struct node *a,struct node *b)


{
if (a->next == NULL)
a->next = b;
else
concatenate(a->next,b);
}

Here, we are  traversing over the article using recursion as explained in the article “Linked list
traversal using while loop and recursion (https://www.codesdope.com/blog/article/linked-list-
traversal-using-while-loop-and-recursi/)”. We are firstly  checking if the next node (a->next) is

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 3/12
4/10/2019 Concatenating two linked lists in C.

NULL or not. If it is NULL, then we are just changing its value from NULL to ‘b’ (a->next = b)
and if it is not then we are calling the ‘concatenate’ function again with the next element to
traverse over the list.

So, the whole code is:

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 4/12
4/10/2019 Concatenating two linked lists in C.

#include <stdio.h>
#include <stdlib.h>

struct node
{
int data;
struct node *next;
};

display(struct node *head)


{
if(head == NULL)
{
printf("NULL\n");
}
else
{
printf("%d\n", head -> data);
display(head->next);
}
}

void concatenate(struct node *a,struct node *b)


{
if( a != NULL && b!= NULL )
{
if (a->next == NULL)
a->next = b;
else
concatenate(a->next,b);
}
else
{
printf("Either a or b is NULL\n");
}
}

int main()
{
struct node *prev,*a, *b, *p;
int n,i;
printf ("number of elements in a:");
scanf("%d",&n);
a=NULL;
for(i=0;i<n;i++)
{
p=malloc(sizeof(struct node));
scanf("%d",&p->data);
p->next=NULL;
if(a==NULL)
a=p;
else
prev->next=p;
prev=p;
}
printf ("number of elements in b:");
scanf("%d",&n);
b=NULL;
for(i=0;i<n;i++)

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 5/12
4/10/2019 Concatenating two linked lists in C.

{
p=malloc(sizeof(struct node));
scanf("%d",&p->data);
p->next=NULL;
if(b==NULL)
b=p;
else
prev->next=p;
prev=p;
}
concatenate(a,b);
return 0;
}

Next:
1. Inserting a new node in a linked list in C
(https://www.codesdope.com/blog/article/inserting-a-new-node-in-a-linked-list-in-c/)

2. Deletion of a given node from a linked list in C


(https://www.codesdope.com/blog/article/deletion-of-a-give-node-from-a-linked-list-in-c/)

3. Array vs Linked list in C (https://www.codesdope.com/blog/article/array-vs-linked-list-in-


c/)

Liked the post?

 (https://www.facebook.com/sharer/sharer.php?u=https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-

c/)  (https://twitter.com/intent/tweet?url=https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-

c/&text=Concatenating two linked lists in C. &via=codesdope)  (https://plus.google.com/share?

url=https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/)  (https://www.linkedin.com/shareArticle?

url=https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/&title=Concatenating two linked lists in C.) 


(https://pinterest.com/pin/create/bookmarklet/?media=https://www.codesdope.com/media/blog_images/1/2017/6/1/rings-
684944_640_cRn6osY.jpg&url=https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-
c/&description=Concatenating two linked lists in C.)

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 6/12
4/10/2019 Concatenating two linked lists in C.

Amit Kumar (/blog/author/54322/?author=54322)


Developer and founder of CodesDope.

 (https://www.facebook.com/codesdope)  (https://www.twitter.com/codesdope) 
(https://www.linkedin.com/in/amit-kumar-66903395)

MOST POPULAR

(/blog/article/c-linked-lists-in-c-singly-linked-list/)

C++ : Linked lists in C++ (Singly linked list) (/blog/article/c-


linked-lists-in-c-singly-linked-list/)
May 30, 2017

(/blog/article/linked-lists-in-c-singly-linked-list/)

Linked lists in C (Singly linked list) (/blog/article/linked-lists-


in-c-singly-linked-list/)
May 21, 2017

(/blog/article/inserting-a-new-node-to-a-linked-list-in-c/)

Inserting a new node to a linked list in C++


(/blog/article/inserting-a-new-node-to-a-linked-list-in-c/)
May 30, 2017

(/blog/article/inserting-a-new-node-in-a-linked-list-in-c/)

Inserting a new node in a linked list in C.


(/blog/article/inserting-a-new-node-in-a-linked-list-in-c/)
May 25, 2017

(/blog/article/backtracking-explanation-and-n-queens-problem/)

Backtracking - Explanation and N queens problem


(/blog/article/backtracking-explanation-and-n-queens-
problem/)
Oct. 21, 2017

FOLLOW US

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 7/12
4/10/2019 Concatenating two linked lists in C.

(https://www.facebook.com/codesdope)
(https://twitter.com/codesdope)
(https://pinterest.com/codesdope/)

  

(https://plus.google.com/b/103889423774256807287/103889423774256807287/po
(https://www.linkedin.com/company/codesdope)

 

RECENT

(/blog/article/priority-queue-using-heap/)

Priority Queue Using Heap (/blog/article/priority-queue-


using-heap/)
Jan. 21, 2019

(/blog/article/heap-binary-heap/)

Heap (Binary Heap) (/blog/article/heap-binary-heap/)


Jan. 21, 2019

(/blog/article/which-language-should-you-learn-first/)

Which language should you learn rst? (/blog/article/which-


language-should-you-learn- rst/)
Jan. 7, 2019

(/blog/article/create-multi-colored-text-outline-using-css/)

Create Multi-colored Text Outline using CSS


(/blog/article/create-multi-colored-text-outline-using-css/)
Dec. 1, 2018

(/blog/article/25-creative-css3-text-shadow-effects-you-cant-miss/)

25 Creative CSS3 Text Shadow Effects You Can't Miss


(/blog/article/25-creative-css3-text-shadow-effects-you-
cant-miss/)
Dec. 1, 2018

You Might Also Like

Inserting a new node in a linked list in C.

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 8/12
4/10/2019 Concatenating two linked lists in C.

(/blog/article/inserting-a-new-node-in-a-linked-list-in-c/)

C++ : Linked lists in C++ (Singly linked list)

(/blog/article/c-linked-lists-in-c-singly-linked-list/)

Set, toggle and clear a bit in C

(/blog/article/set-toggle-and-clear-a-bit-in-c/)

Mouse Rollover Zoom Effect on Images

(/blog/article/mouse-rollover-zoom-effect-on-images/)

Important functions in math.h library of C

(/blog/article/important-functions-in-mathh-library-of-c/)

Formatting the print using printf in C

(/blog/article/formatting-the-print-using-printf-in-c/)

Linked list traversal using loop and recursion in c++

(/blog/article/linked-list-traversal-using-loop-and-recursion-in-/)

Calculator using Java Swing and AWT with source code

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 9/12
4/10/2019 Concatenating two linked lists in C.

(/blog/article/calculator-using-java-swing-and-awt-with-source-co/)

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 10/12
4/10/2019 Concatenating two linked lists in C.

Editor's Picks

0 COMMENT

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 11/12
4/10/2019 Concatenating two linked lists in C.

Please login (/accounts/login/?next=/blog/article/concatenating-two-linked-lists-in-c/) to view or add


comment(s).

(/blog/)
Learn and Explore your way

CATEGORIES

ABOUT (/about/)

COURSES (/)

TERMS AND CONDITIONS (/terms-of-use/)

PRIVACY POLICY (/privacy-policy/)

CONTACT US (/contact-us/)

KEEP IN TOUCH

 help@codesdope.com (mailto:help@codesdope.com)

FOLLOW US

 (https://www.facebook.com/codesdope)  (https://twitter.com/codesdope)

(https://plus.google.com/b/103889423774256807287/103889423774256807287/posts)
 (https://www.linkedin.com/company/codesdope) 
(https://www.pinterest.com/codesdope/)

© www.codesdope.com (/) All rights reserved.

https://www.codesdope.com/blog/article/concatenating-two-linked-lists-in-c/ 12/12

You might also like