class Solution {
public:
vector<TreeNode*>res;
unordered_map<string,int>mp;
string dfs(TreeNode* root){
if(!root)return" ";
string words = to_string(root->val)+'_';
words+=dfs(root->left)+dfs(root->right);
mp[words]++;
if(mp[words]==2)
res.emplace_back(root);
return words;
}
vector<TreeNode*> findDuplicateSubtrees(TreeNode* root) {
dfs(root);
return res;
}
};
652. 寻找重复的子树
最新推荐文章于 2024-02-17 01:07:07 发布
该篇文章介绍了如何使用C++编程语言中的深度优先搜索(DFS)方法,通过unordered_map数据结构找出二叉树中具有两个相同表示的子树。findDuplicateSubtrees函数是核心部分,它调用dfs函数并返回找到的重复子树的指针列表。
摘要由CSDN通过智能技术生成