Google – Sum of Subtree with Only Parent Pointer
给一个list of nodes, 每个node只有val和parent pointer。再给其中的一个node t, 要求返回sum of subtree of t
[Solution]
其实就是用hash table重新建tree就好了。
下面的code是重新建tree之后返回整个tree的sum,忘了再输入一个node了,但是思路应该都一样,建完dfs。
Read full article from Google – Sum of Subtree with Only Parent Pointer
给一个list of nodes, 每个node只有val和parent pointer。再给其中的一个node t, 要求返回sum of subtree of t
[Solution]
其实就是用hash table重新建tree就好了。
下面的code是重新建tree之后返回整个tree的sum,忘了再输入一个node了,但是思路应该都一样,建完dfs。
public int subTreeSum(List<TNode> nodes, TNode node) { if (nodes == null || nodes.isEmpty() || node == null) { return 0; } Map<TNode, List<TNode>> tree = new HashMap<>(); for (TNode t : nodes) { tree.putIfAbsent(t.parent, new ArrayList<>()); tree.get(t.parent).add(t); } return dfs(node, tree); } private int dfs(TNode node, Map<TNode, List<TNode>> tree) { if (node == null) { return 0; } int sub = 0; for (TNode child : tree.get(node)) { sub += dfs(child, tree); } return sub + node.val; }