
leetcode 652. 寻找重复的子树 题解 java实现
发布日期:2021-05-04 13:50:04
浏览次数:17
分类:精选文章
本文共 877 字,大约阅读时间需要 2 分钟。
力扣 652. 寻找重复的子树 题解 java实现
给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。
两棵树重复是指它们具有相同的结构以及相同的结点值。
示例 1:
因此,你需要以列表的形式返回上述重复子树的根结点。
思路
找到以当前节点的树结构,然后存入HashMap里面,顺便记录出现次数,当出现次数为1次的时候加入结果,找到当前根节点的树结构用后序遍历
class Solution { Listres = new LinkedList<>(); //记录次数 HashMap map = new HashMap<>(); public List findDuplicateSubtrees(TreeNode root) { traverse(root); return res; } public String traverse(TreeNode root){ //终止条件 if(root == null) return "#"; String left = traverse(root.left); String right = traverse(root.right); //后序遍历可以得到根节点的树结构 String sub = left + "," + right + "," + root.val; //查找出现次数,没有出现赋值为0 int i = map.getOrDefault(sub, 0); //只有出现次数为1的时候才会放入结果 if(i == 1) res.add(root); //次数加一 map.put(sub, i+1); return sub; }}
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月14日 18时14分10秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JAVA高并发集合详解
2021-05-08
解决Spirng注入时名称下的红色波浪线
2021-05-08
操作系统知识概述
2021-05-08
读懂操作系统(x64)之堆栈帧(过程调用)
2021-05-08
仓储模式到底是不是反模式?
2021-05-08
VS2015安装EF Power Tools
2021-05-08
ASP.NET MVC之JsonResult(六)
2021-05-08
SQL Server之深入理解STUFF
2021-05-08
使用mybatis-generator生成底层
2021-05-08
Android APK 重签名
2021-05-08
Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息
2021-05-08
Mybatis【5】-- Mybatis多种增删改查那些你会了么?
2021-05-08
Mybatis【6】-- Mybatis插入数据后自增id怎么获取?
2021-05-08
Mybatis【7】-- Mybatis如何知道增删改是否成功执行?
2021-05-08
Mybatis【9】-- Mybatis占位符#{}和拼接符${}有什么区别?
2021-05-08
计算输入的一句英文语句中单词数
2021-05-08
zabbix系列之十——添加短信告警
2021-05-08
docker复制文件到宿主机
2021-05-08