假设最初头和尾是双向链表中仅有的两个节点,下面是发生了什么......在ascii艺术中!
通话前:
+--------+
| post|
| node |
|pre |
+--------+
+-------------------------------------------+
| |
| |
| +--------+ +--------+ |
+-> | post+---------------> | post+---+
| head | | tail |
+---+pre | <---------------+pre | <-+
| +--------+ +--------+ |
| |
+-------------------------------------------+
第 1 行:
+--------+
| post|
| node |
+----------+pre |
| +--------+
|
+------|------------------------------------+
| | |
| v |
| +--+-----+ +--------+ |
+-> | post+---------------> | post+---+
| head | | tail |
+---+pre | <---------------+pre | <-+
| +--------+ +--------+ |
| |
+-------------------------------------------+
第 2 行:
+--------+
| post+---------+
| node | |
+----------+pre | |
| +--------+ |
| |
+------|-----------------------------|------+
| | | |
| v v |
| +--+-----+ +-----+--+ |
+-> | post+---------------> | post+---+
| head | | tail |
+---+pre | <---------------+pre | <-+
| +--------+ +--------+ |
| |
+-------------------------------------------+
第 3 行:
+--------+
| post+---------+
| node | |
+----------+pre | |
| +------+-+ |
| ^ |
+------|-----------------|-----------|------+
| | | | |
| v | v |
| +--+-----+ | +-----+--+ |
+-> | post+---------------> | post+---+
| head | | | tail |
+---+pre | +-----+pre | <-+
| +--------+ +--------+ |
| |
+-------------------------------------------+
第 4 行:
+--------+
| post+---------+
| node | |
+----------+pre | |
| +-+----+-+ |
| ^ ^ |
+------|------------|----|-----------|------+
| | | | | |
| v | | v |
| +--+-----+ | | +-----+--+ |
+-> | post+------+ | | post+---+
| head | | | tail |
+---+pre | +-----+pre | <-+
| +--------+ +--------+ |
| |
+-------------------------------------------+
最终结果:
+----------------------------------------------------+
| |
| |
| +--------+ +--------+ +--------+ |
+-> | post+--------> post+--------> post+---+
| head | | node | | tail |
+---+pre <--------+pre <--------+pre | <-+
| +--------+ +--------+ +--------+ |
| |
+----------------------------------------------------+