WRITING
Notes on building and running systems
Engineering write-ups — architecture, security, and the occasional war story.
#two-pass · All writing
Series
Tags
- #leetcode 50
- #dfs 18
- #recursion 17
- #bfs 11
- #trees 11
- #backtracking 9
- #array 7
- #dynamic-programming 7
- #graphs 7
- #hash-map 7
- #linked-list 7
- #design 5
- #greedy 5
- #heap-priority-queue 5
- #matrix 5
- #string 5
- #two-pointers 5
- #binary-tree 4
- #cycle-detection 4
- #dp 4
- #sorting 4
- #stack 4
- #binary-search 3
- #divide-and-conquer 3
- #hash-table 3
- #priority-queue 3
- #binary-search-tree 2
- #data-structures 2
- #hard 2
- #heap 2
- #math 2
- #memoization 2
- #monotonic-stack 2
- #simulation 2
- #topological-sort 2
- #arrays-hashing 1
- #combinatorics 1
- #constraint-satisfaction 1
- #constraint-validation 1
- #counting 1
- #data-stream 1
- #depth-first-search 1
- #feasibility 1
- #flood-fill 1
- #geometry 1
- #hash-set 1
- #in-place 1
- #kadane 1
- #level-order 1
- #monotonic 1
- #optimization 1
- #palindrome 1
- #post-order 1
- #quickselect 1
- #sliding-window 1
- #string-matching 1
- #strings 1
- #two-pass 1
- #two-stacks 1
- #union-find 1
01
Copy List with Random Pointer: when next is not enough
Deep-copying a linked list with a random pointer looks simple until you realize the random pointer can point backward, creating a reference to a node you have not cloned yet. Two approaches crack this: a hash map that trades O(n) memory for clarity, and an interweaving technique that folds the copy into the original list itself to hit O(1) auxiliary space.Jun 14, 2026 · 13 min read · #00067
Occasional notes on what I'm building
Get an email when I publish a new post — engineering write-ups, no spam. Unsubscribe anytime.