Surprised this doesn't have my favorite XOR trick: implementing a double-linked list with one pointer!
Store predecessor XOR successor in each node.
I suspect this clicks already with everyone, and I don't need to explain forward and backward iteration.