1506. Find Root of N-Ary Tree

Use set

T: O(n)
S: O(n)
class Solution {
    public Node findRoot(List<Node> tree) {
        Set<Node> seen = new HashSet<>();
        for (Node node : tree) {
            for (Node next : node.children) {
                seen.add(next);
            }
        }

        Node root = null;
        for (Node node : tree) {
            if (!seen.contains(node)) {
                root = node;
                break;
            }
        }
        return root;
    }
}

Use sum

Last updated

Was this helpful?