flatTree<E> function

List<EasyTreeNode<E>> flatTree<E>(
  1. List<EasyTreeNode<E>>? nodes
)

Implementation

List<EasyTreeNode<E>> flatTree<E>(List<EasyTreeNode<E>>? nodes) {
  if (nodes == null) return [];
  List<EasyTreeNode<E>> stack = [], result = [];
  stack.addAll(nodes);
  while (stack.length > 0) {
    EasyTreeNode<E> node = stack.removeAt(0);
    if (!result.contains(node)) result.add(node);
    if (!node.isLeaf) stack.insertAll(0, node.children!);
  }
  return result;
}