insert method
在目标节点插入新的节点:
- targetNode 目标节点
- newNode 插入的新节点,如果已关联,则执行移动操作
- isBefore 是否将新节点将插入到前面
Implementation
void insert(N targetNode, N newNode, {bool isBefore = false}) {
if (isBefore) {
newNode.mount(this, targetNode.prev, targetNode);
if (targetNode.prev != null) targetNode.prev!._next = newNode;
targetNode._prev = newNode;
if (newNode.prev == null) _first = newNode;
} else {
newNode.mount(this, targetNode, targetNode.next);
if (targetNode.next != null) targetNode.next!._prev = newNode;
targetNode._next = newNode;
if (newNode.next == null) _last = newNode;
}
}