# Introduction To

Linked List

A linked list is a linear data structure where each element is a separate object. Linked list elements are not stored at contiguous location, the elements are linked using pointers.

Each node of a list is made up of two items - the data and a reference to the next node. The last node has a reference to null. The entry point into a linked list is called the head of the list. It should be noted that head is not a separate node, but the reference to the first node. If the list is empty then the head is a null reference.

# Course Structure

## Singly Linked List

- Linked List | Set 1 (Introduction)
- Linked List vs Array
- Linked List | Set 2 (Inserting a node)
- Linked List | Set 3 (Deleting a node)
- Delete a Linked List node at a given position
- Write a function to delete a Linked List
- Find Length of a Linked List (Iterative and Recursive)
- Search an element in a Linked List (Iterative and Recursive)
- Write a function to get Nth node in a Linked List
- Program for n’th node from the end of a Linked List
- Find the middle of a given linked list in C and Java
- Write a function that counts the number of times a given int occurs in a Linked List
- Detect loop in a linked list
- Find length of loop in linked list
- Function to check if a singly linked list is palindrome
- Remove duplicates from a sorted linked list
- Remove duplicates from an unsorted linked list
- Swap nodes in a linked list without swapping data
- Pairwise swap elements of a given linked list
- Move last element to front of a given Linked List
- Intersection of two Sorted Linked Lists
- Write a function to get the intersection point of two Linked Lists.
- QuickSort on Singly Linked List
- Segregate even and odd nodes in a Linked List
- Reverse a linked list

## Circular Linked List

- Split a Circular Linked List into two halves
- Sorted insert for circular linked list
- Check if a linked list is Circular Linked List
- Convert a Binary Tree to a Circular Doubly Link List
- Circular Singly Linked List | Insertion
- Deletion from a Circular Linked List
- Count nodes in Circular linked list
- Josephus Circle using circular linked list
- Convert singly linked list into circular linked list
- Circular Linked List | Set 1 (Introduction and Applications)
- Circular Linked List | Set 2 (Traversal)
- Exchange first and last nodes in Circular Linked List

## Doubly Linked List

- Doubly Linked List | Set 1 (Introduction and Insertion)
- Delete a node in a Doubly Linked List
- Reverse a Doubly Linked List
- The Great Tree-List Recursion Problem.
- Clone a linked list with next and random pointer | Set 1
- QuickSort on Doubly Linked List
- Swap Kth node from beginning with Kth node from end in a Linked List
- Merge Sort for Doubly Linked List
- Create a Doubly Linked List from a Ternary Tree
- Find pairs with given sum in doubly linked list
- Insert value in sorted way in a sorted doubly linked list
- Delete a Doubly Linked List node at a given position
- Count triplets in a sorted doubly linked list whose sum is equal to a given value x
- Remove duplicates from a sorted doubly linked list
- Delete all occurrences of a given key in a doubly linked list
- Remove duplicates from an unsorted doubly linked list
- Sort the biotonic doubly linked list
- Sort a k sorted doubly linked list
- Convert a given Binary Tree to Doubly Linked List | Set 4
- Program to find size of Doubly Linked List
- Sorted insert in a doubly linked list with head and tail pointers
- Large number arithmetic using doubly linked list
- Rotate Doubly linked list by N nodes
- Reverse a doubly linked list in groups of given size
- Doubly Circular Linked List | Set 1 (Introduction and Insertion)
- Doubly Circular Linked List | Set 2 (Deletion)

## Misc

- Skip List | Set 2 (Insertion)
- Skip List | Set 3 (Searching and Deletion)
- An interesting method to print reverse of a linked list
- Linked List representation of Disjoint Set Data Structures
- Sublist Search (Search a linked list in another list)
- How to insert elements in C++ STL List ?
- A Programmer’s approach of looking at Array vs. Linked List
- How to write C functions that modify head pointer of a Linked List?
- Given a linked list which is sorted, how will you insert in sorted way
- Can we reverse a linked list in less than O(n)?
- Practice questions for Linked List and Recursion
- Construct a Maximum Sum Linked List out of two Sorted Linked Lists having some Common nodes
- Given only a pointer/reference to a node to be deleted in a singly linked list, how do you delete it?
- Why Quick Sort preferred for Arrays and Merge Sort for Linked Lists?
- Squareroot(n)-th node in a Linked List
- Find the fractional (or n/k – th) node in linked list
- Find modular node in a linked list
- Construct a linked list from 2D matrix
- Find smallest and largest elements in singly linked list
- Arrange consonants and vowels nodes in a linked list
- Partitioning a linked list around a given value and If we don’t care about making the elements of the list “stable”
- Modify contents of Linked List