一个双向链表给每个节点赋予两个 pointers — next 和 prev — 这样你可以在两个方向上遍历,并且当你已持有该节点的引用时可以在 O(1) 时间内删除它(无需从头部走到前驱节点)。
结构
text
null <- [10] <-> [20] <-> [30] -> null
prev/next links in BOTH directions
已知节点的 O(1) 删除
python
:
():
.val, .prev, . = val, ,
():
node.prev: node.prev. = node.
node.: node..prev = node.prev
