## Reverse a Linked List in C/C++ using Recursion

In this post, we will see how to reverse linked list using recursion in C and C++.

## Reverse a linked List in C and Java (Iterative Solution)

In this post, we will see how to reverse linked list iteratively without using recursion.

## Intersection of two given sorted linked lists

Given two lists sorted in increasing order, create and return a new list representing the intersection of the two lists. The new list should be made with its own memory — the original lists should not be changed.

## Merge Sort Algorithm for Singly Linked List (in C and Java)

Given a linked list, sort it using merge sort algorithm.     Merge sort algorithm is an efficient, general-purpose sorting algorithm which produces a stable sort, which means that the implementation preserves the input order of equal elements in the sorted output. Merge sort is a comparison sort, i.e. it can sort items of any …

## Merge two sorted linked lists into one

Write a function that takes two lists, each of which is sorted in increasing order, and merges the two together into one list which is in increasing order and return it.

## Construct a linked list by merging alternate nodes of two given lists

Given two linked lists, merge their nodes together to make one list, taking nodes alternately between the two lists. If either list runs out, all the nodes should be taken from the other list.

## Split linked list into two lists where each list containing alternating elements from it

Given a linked list, split its into two lists where each list containing alternating elements from the original list. The elements in the new lists may be in any order.

## Move even nodes to the end of the list in reverse order

Rearrange the given linked list such that every even node will be moved to end of the list in reverse order.

## Move front node of the given list to the front of the another list

Given a linked list, move front node of it to the front of the another given list.

## Remove duplicates from a sorted linked list

Given a linked list sorted in increasing order, write a function which removes any duplicate nodes from the list by traversing the list only once.

## Split nodes of the given linked list into front and back halves

Given a list, split it into two sublists – one for the front half, and one for the back half. If the number of elements is odd, the extra element should go in the front list.