DoxigAlpha

reverse

Reverse the list starting from this node in-place.

This operation is O(N). Instead of calling this function, consider using a different data structure.

Function parameters

Parameters

#
indirect:*?*Node

This struct contains only a next pointer and not any data payload.

Types

#
Node
This struct contains only a next pointer and not any data payload.

Functions in this namespace

Functions

#
popFirst
Remove and return the first node in the list.
len
Iterate over all nodes, returning the count.

Source

Implementation

#
pub fn reverse(indirect: *?*Node) void {
    if (indirect.* == null) {
        return;
    }
    var current: *Node = indirect.*.?;
    while (current.next) |next| {
        current.next = next.next;
        next.next = indirect.*;
        indirect.* = next;
    }
}