getLeaves method

  1. @override
Set<Node> getLeaves({
  1. Node? startNode,
})
override

Returns a list of leaves.

If startNode is specified, it returns a list of leaves for which startNode is the common ancestor.

If startNode is not specified, it returns a list of all leaves in the tree.

Implementation

@override
Set<Node> getLeaves({
  Node? startNode,
}) {
  final start = startNode ?? root;
  final result = <Node>{};
  visitBreadth(
    startNode: start,
    (node) {
      final nodeEdges = getNodeEdges(node);
      if (nodeEdges.isEmpty) {
        result.add(node);
      }
      return VisitResult.continueVisit;
    },
  );

  return result;
}