力扣labuladong——一刷day33

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • [一、力扣652. 寻找重复的子树](#一、力扣652. 寻找重复的子树)

前言


前序位置的代码只能从函数参数中获取父节点传递来的数据,而后序位置的代码不仅可以获取参数数据,还可以获取到子树通过函数返回值传递回来的数据。

一、力扣652. 寻找重复的子树

java 复制代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    List<TreeNode> res;
    Map<String,Integer> invild;
    public List<TreeNode> findDuplicateSubtrees(TreeNode root) {
        res = new LinkedList<>();
        invild = new HashMap<>();
        fun(root);
        return res;
    }
    public String fun(TreeNode root){
        if(root == null){
            return "#";
        }
        String le = fun(root.left);
        String ri = fun(root.right);
        String cur = le + "," + ri + "," + root.val;
        if(invild.getOrDefault(cur,0) == 1){
            res.add(root);
        }
        invild.put(cur,invild.getOrDefault(cur,0)+1);
        return cur;
    }
}
相关推荐
TT哇3 分钟前
我把两个 Java 项目和一个 Python AI 服务部署到 2C2G:一次低成本 Docker 容器化实践
java·人工智能·python
星子yu9 分钟前
【Java数据结构】二叉树 好像就这样?
java·数据结构
Irene199112 分钟前
Flink 学习需要具备的 Java 基础知识总结
java·flink
宸津-代码粉碎机14 分钟前
Spring AI企业级工程化落地手册|从Demo改造为生产级商用项目
java·人工智能·python·spring
Beyond_System|系统之外21 分钟前
【学编程】Python基础编程题100道(1-20)
java·数据结构·算法
维克兜率天25 分钟前
【维克】一个极端值,毁掉了整个因子
大数据·人工智能·python·算法·机器学习
Wang's Blog27 分钟前
Java框架快速入门: Spring Security+OAuth2之环境配置与多环境部署
java·开发语言·spring
小羊没烦恼!27 分钟前
Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(完)
java·大数据·前端·网络·word·powerpoint·.net
船厂电气自动化ai大模型32 分钟前
AI大模型与数学 第75课 基、维度、向量空间坐标
数据结构·线性代数·算法·机器学习·推荐算法
博界IT精灵32 分钟前
专题1:线性表
考研·算法