单链表指定结点前插

1. 在 node 后插入 newNode

单链表不能直接从 node 找前驱。先把新结点插到 node 后面。

nodenext
old...
newnext
newNode->next = node->next;
node->next = newNode;

2. 复制 node 的旧数据

让新结点保存 node 原来的数据,给 node 腾出逻辑位置。

old
old
...
nodenewNodenext
newNode->data = node->data;

3. 新数据写入 node

链表结构上是后插,数据效果上等价于在 node 前插入。

value
old
...
nodenewNodenext
node->data = value;