一 题目
二 代码
let findDuplicateSubtrees = function(root){
//借助map存储所有子树序列,并计数
let map={};
//存放重复子树
let res=[];
//定义helper函数递归解决问题,序列化子树为字符串,判断map中是否有该字符串
let helper=function(root){
//空节点用#表示
if(!root) return "#";
//递归调用,得到所有字符串
let subString=helper(root.left)+','+helper(root.right)+','+root.val.toString();
if(map[subString]===1){
//如果map中有该字符串,将该子树放入res的中
res.push(root);
map[subString]+=1;
}else if(!map[subString]){
map[subString]=1;
}
return subString;
}
helper(root);
return res;
}