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
役に立ちましたか?
コメントを追加
コメントを見る
ユーザー評価で最も役立つ内容: