如果我们想在给定的结点prev之后,添加新值,我们应该:
1.使用给定值初始化新结点cur;
2.将cur的“next”字段链接到prev的下一个结点next;
3.将pre中的“next”字段链接到cur。
与数组不同,我们不需要将所有元素移动到插入元素之后。因此,您可以在 O(1)
时间复杂度中将新结点插入到链表中,这非常高效。
示例
让我们在第二个结点 6 之后插入一个新的值 9。
我们将首先初始化一个值为 9 的新结点。然后将结点 9 链接到结点 15。最后,将结点 6 链接到结点 9。
插入之后,我们的链表将如下所示:
在开头添加结点
众所周知,我们使用头结点来代表整个列表。
因此,在列表开头添加新节点时更新头结点 head
至关重要。
- 初始化一个新结点
cur;
- 将新结点链接到我们的原始头结点
head
。 - 将
cur
指定为head
。
例如,让我们在列表的开头添加一个新结点 9。
- 我们初始化一个新结点 9 并将其链接到当前头结点 23。
- 指定结点 9 为新的头结点。
如何在列表的末尾添加新的结点?我们还能使用类似的策略吗?