Function insertBefore [src]
Prototype
pub fn insertBefore(list: *DoublyLinkedList, existing_node: *Node, new_node: *Node) void
Parameters
list: *DoublyLinkedList
existing_node: *Node
new_node: *Node
Source
pub fn insertBefore(list: *DoublyLinkedList, existing_node: *Node, new_node: *Node) void {
new_node.next = existing_node;
if (existing_node.prev) |prev_node| {
// Intermediate node.
new_node.prev = prev_node;
prev_node.next = new_node;
} else {
// First element of the list.
new_node.prev = null;
list.first = new_node;
}
existing_node.prev = new_node;
}