第3天
652. 寻找重复的子树
class Solution {
Map<String, Integer> map = new HashMap<>();
List<TreeNode> res = new ArrayList<>();
public List<TreeNode> findDuplicateSubtrees(TreeNode root) {
traverse(root);
return res;
}
String traverse(TreeNode root){
if(root == null)
return "#";
String left = traverse(root.left);
String right = traverse(root.right);
String treStr = left + "," + right + "," + root.val;
int i = map.getOrDefault(treStr, 0);
if(i == 1)
res.add(root);
map.put(treStr, i + 1);
return treStr;
}
}