pub fn remove(list: *DoublyLinkedList, node: *const Node) void list: *DoublyLinkedListnode: *const Node112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128pub fn remove(list: *DoublyLinkedList, node: *const Node) void {
if (node.prev) |prev_node| {
// Intermediate node.
prev_node.next = node.next;
} else {
// First element of the list.
list.first = node.next;
}
if (node.next) |next_node| {
// Intermediate node.
next_node.prev = node.prev;
} else {
// Last element of the list.
list.last = node.prev;
}
}
Remove a node from the list. Assumes the node is in the list.
Arguments: node: Pointer to the node to be removed.