Implement prototype(values: list[int], blocked: list[int]) -> list[int] and solve with the same signature. Return surviving values in original order, omitting every value present in blocked. Example: ([1, 2, 3, 2, 4], [1, 2]) returns [3, 4]. Empty inputs are valid; do not mutate either list.

Prototype: filter values into a new list. For the final linked-list exercise, also implement detach(head: Node | None, blocked: set[int]) -> Node | None using the provided Node(value, next) class. Relink existing nodes; every surviving object must retain its identity and order, and the result must end without a cycle. None or complete removal returns None. A temporary sentinel is allowed. Do not mutate blocked. PointerTests run in both stages.

Drag or use the arrow keys to resize. Home collapses the question; End collapses the editor. Enter or double-click resets the split.
Loading editor…
No results yet.

Complete the starter code, then run the checks.
Results and errors will appear here.