双向链表这里不做赘述,其特性已经普及遍了。可以参考之前博客的单向链表进行回顾学习。
在这里记录一个问题点,就是双向链表的有序插入时,赋值顺序是什么?
首先什么是有序插入,插入分为头部插入和尾部插入和按顺序插入,由于前两种比较简单,所以不会出现什么问题。
这里所记录的有序插入(或者有序添加),是最特殊的一种情况。
比如要插入2节点到1和3之间,因此需要对4个指针进行赋值,这里面的赋值顺序是什么,这是我们需要讨论的。
首先贴出代码在进行分析,代码解析可以看注释
//按节点排序添加
public void addByOrder(Node node) {
//因为是双链表,因此temp可以在插入的位置, (区别于单链表)
Node temp = head