List<TreeNode> get leaves { var leafs = <TreeNode>[]; for (var child in children!) { if (child.children == null) { leafs.add(child); } else { leafs.addAll([child, ...child.leaves]); } } return leafs; }