Interview Questions and Answers
Freshers / Beginner level questions & answers
Ques 1. Find the kth to last element of a singly linked list.
Use two pointers; one moves k nodes into the list, and then both iterate until the second one reaches the end.
Example:
Input: 1 -> 2 -> 3 -> 4 -> 5, k = 2
Output: 4
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 2. Remove duplicates from an unsorted linked list.
Use a hash set to keep track of unique elements while traversing the list.
Example:
Input: 1 -> 2 -> 2 -> 3 -> 4 -> 4 -> 5
Output: 1 -> 2 -> 3 -> 4 -> 5
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 3. Write a function to find the middle element of a linked list.
Use two pointers; one moves one step at a time, and the other moves two steps at a time.
Example:
Input: 1 -> 2 -> 3 -> 4 -> 5
Output: 3
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Intermediate / 1 to 5 years experienced level questions & answers
Ques 4. Implement a function to reverse a singly linked list.
To reverse a linked list, you can iterate through the list and reverse the direction of pointers.
Example:
Input: 1 -> 2 -> 3 -> 4 -> 5
Output: 5 -> 4 -> 3 -> 2 -> 1
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 5. Detect a cycle in a linked list.
You can use Floyd's cycle-finding algorithm, also known as the 'tortoise and hare' algorithm.
Example:
Input: 1 -> 2 -> 3 -> 4 -> 5 -> 2 (cycle)
Output: True
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 6. Merge two sorted linked lists into a single sorted list.
Traverse both lists simultaneously, compare elements, and merge them into a new sorted list.
Example:
Input: List1: 1 -> 3 -> 5, List2: 2 -> 4 -> 6
Output: 1 -> 2 -> 3 -> 4 -> 5 -> 6
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 7. Check if a linked list is a palindrome.
Reverse the second half of the list and compare it with the first half.
Example:
Input: 1 -> 2 -> 3 -> 2 -> 1
Output: True
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 8. Swap nodes in pairs in a linked list.
Iterate through the list and swap each pair of adjacent nodes.
Example:
Input: 1 -> 2 -> 3 -> 4
Output: 2 -> 1 -> 4 -> 3
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 9. Rotate a linked list by k places.
Find the length of the list, then move (length - k % length) steps to the right.
Example:
Input: 1 -> 2 -> 3 -> 4 -> 5, k = 2
Output: 4 -> 5 -> 1 -> 2 -> 3
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 10. Detect the intersection point of two linked lists.
Find the lengths of both lists, move the longer list's pointer ahead, and then iterate to find the intersection.
Example:
Input: List1: 1 -> 2 -> 3, List2: 6 -> 5 -> 2 -> 3
Output: Node with value 2
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Experienced / Expert level questions & answers
Ques 11. Implement a function to add two numbers represented by linked lists.
Traverse both lists simultaneously, perform addition, and handle carry.
Example:
Input: (7 -> 2 -> 4) + (5 -> 6 -> 4)
Output: 2 -> 9 -> 8
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 12. Clone a linked list with next and random pointers.
Create a copy of each node and link the copies, then separate the original and cloned lists.
Example:
Input: 1 -> 2 -> 3 -> 4
Output: 1' -> 2' -> 3' -> 4'
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 13. Flatten a multilevel doubly linked list.
Use recursion to flatten each level and connect the flattened levels.
Example:
Input: 1 <-> 2 <-> 3 <-> 7 <-> 8 <-> 11 <-> 4 <-> 9 <-> 12
Output: 1 <-> 2 <-> 3 <-> 4 <-> 7 <-> 8 <-> 9 <-> 11 <-> 12
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 14. Implement LRU (Least Recently Used) Cache using a linked list.
Maintain a doubly linked list to represent usage order and a hash map for quick access.
Example:
Cache capacity = 3
Operations: Get(2), Put(2, 6), Get(1), Put(1, 5), Put(1, 2)
Output: 6, 5, 2
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Ques 15. Reverse nodes in k-group in a linked list.
Reverse k nodes at a time, and connect the reversed groups.
Example:
Input: 1 -> 2 -> 3 -> 4 -> 5, k = 2
Output: 2 -> 1 -> 4 -> 3 -> 5
Save For Revision
Save For Revision
Bookmark this item, mark it difficult, or place it in a revision set.
Log in to save bookmarks, difficult questions, and revision sets.
Most helpful rated by users: