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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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'
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
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
保存以便复习
保存以便复习
收藏此条目、标记为困难题,或将其加入复习集合。
Most helpful rated by users: