LeetCode 508. Most Frequent Subtree Sum
2020-05-22 12:36:15
# leetcode
Problem
LeetCode 508. Most Frequent Subtree Sum
1. 题目简述
给出一颗二叉树,找出其所有子树并求子树和,找出频率最高的子树和(如果有频率一致的,返回多个)。例如:
Examples 1
Input:
5
/ \
2 -3
return [2, -3, 4], since all the values happen only once, return all of them in any order.
Examples 2
Input:
5
/ \
2 -5
return [2], since 2 happens twice, however -5 only occur once.
2. 算法思路
后序遍历 + HashMap:
很明显的后序遍历,对于每一个节点,都计算它的左子树和和右子树和,和自己本身的val相加,就是自己的子树和,统计完成后,找出最高频率,然后再次遍历HashMap,找出符合条件的sum和,最后再将储存结果的list转为array。
3. 解法
1 | /** |