Linked List 面试题与答案
问题 6. 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'
这有帮助吗?
添加评论
查看评论
问题 7. 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
这有帮助吗?
添加评论
查看评论
问题 8. 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
这有帮助吗?
添加评论
查看评论
问题 9. 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
这有帮助吗?
添加评论
查看评论
问题 10. 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
这有帮助吗?
添加评论
查看评论
用户评价最有帮助的内容: