A linked list is a linear data structure consisting of a group of nodes where each node point to the next node by means of a pointer. Each node is composed of data and a reference (in other words, a link) to the next node in the sequence.

Linked lists are among the simplest and most common data structures. The principal benefits of a linked list over a conventional array are –

- The list elements can easily be inserted or removed without reallocation or reorganization of the entire structure because the data items need not be stored contiguously in memory, while an array has to be declared in the source code, before compiling and running the program.
- Linked lists allow insertion and removal of nodes at any point in the list, and can do so with a constant number of operations if the link previous to the link being added or removed is maintained during list traversal.

On the other hand, simple linked lists by themselves do not allow random access to the data, or any form of efficient indexing. Thus, many basic operations ? such as obtaining the last node of the list, or finding a node that contains a given data, or locating the place where a new node should be inserted ? may require sequential scanning of most or all of the list elements.

In this post, we have list out commonly asked interview questions that uses linked list data structure-

- Introduction to Linked Lists
- Linked List Implementation | Part 1
- Linked List Implementation | Part 2
- Static Linked List in C
- Clone given Linked List
- Delete Linked List
- Pop operation in linked list
- Insert given node into the correct sorted position in the given sorted linked list
- Given a linked list, change it to be in sorted order
- Split the nodes of the given linked list into front and back halves
- Remove duplicates from a sorted linked list
- Move front node of the given list to the front of the another list
- Move even nodes to the end of the list in reverse order
- Split given linked list into two lists where each list containing alternating elements from it
- Construct a linked list by merging alternate nodes of two given lists
- Merge given sorted linked lists into one
- Merge Sort Algorithm for Singly Linked List
- Intersection of two given sorted linked lists
- Reverse linked list | Part 1 (Iterative Solution)
- Reverse linked list | Part 2 (Recursive Solution)
- Reverse every group of k nodes in given linked list
- Find K?th node from the end in a linked list
- Merge alternate nodes of two linked lists into the first list
- Merge two sorted linked lists from their end
- Delete every N nodes in a linked list after skipping M nodes
- Rearrange linked list in specific manner in linear time
- Check if linked list is palindrome or not
- Move last node to front in a given Linked List
- Rearrange the linked list in specific manner
- Detect Cycle in a linked list (Floyd?s Cycle Detection Algorithm)
- Sort linked list containing 0?s, 1?s and 2?s
- Stack Implementation using Linked List
- Queue Implementation using Linked List
- Remove duplicates from a linked list
- Rearrange the linked list so that it has alternating high, low values
- Rearrange a Linked List by Separating Odd Nodes from the Even Ones
- Calculate height of a binary tree with leaf nodes forming a circular doubly linked list
- XOR Linked List: Overview and Implementation
- Convert a multilevel linked list to a singly linked list

Thank you.