+// Nodes returns the built nodes, ordered by level and then by index.
+func (t *Tree) Nodes() []Node {
+ nodes := make([]Node, 0, len(t.nodes))
+ for _, node := range t.nodes {
+ nodes = append(nodes, node)
+ }
+
+ slices.SortFunc(nodes, func(a, b Node) int {
+ return cmp.Or(cmp.Compare(a.Level, b.Level), cmp.Compare(a.Index, b.Index))
+ })
+
+ return nodes
+}
+