Find a longest path in a tree.
Sigiloso
List longestPath(Node node) { List path = new ArrayList(); path.add(node); List longestChildPath = new ArrayList(); for(Node child: node.children()) { List childPath = longestPath(child); if (longestChildPath == null || childPath.size() > longestChildPath) { longestChildPath = childPath; } } path.addAll(longestChildPath); return path; }