力扣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;
    }
}
相关推荐
10mAh2 分钟前
【Linux】error while loading shared libraries 怎么解决?——ldd、RPATH 与动态链接排错
java·linux·前端
深念Y8 分钟前
stable-diffusion.cpp 的 FLUX.2 Klein 9B 分步
java·前端·数据库
阿pin18 分钟前
Java随笔-红黑树
java·python·算法·红黑树
Hi李耶19 分钟前
【LeetCode】17.电话号码的字母组合
算法·leetcode·职场和发展
我命由我1234525 分钟前
Jetpack Compose - @Preview 注解
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
为美好的生活献上中指29 分钟前
Spring AI Advisor 深度实战:构建严谨的 AI Agent 拦截链
java·人工智能·spring·advisor·aiagent
ruofu3332 分钟前
如何让docker使用提前下载好的镜像,而不是在线拉取
java·spring cloud·docker
爱敲键盘的猴子32 分钟前
深入理解 Spring IoC -- 基于 XML 的 Bean 配置详解
xml·java·spring
艾莉丝努力练剑39 分钟前
【Qt:问题解决】Qt程序入口点错误修复:MinGW ABI兼容问题
java·服务器·开发语言·qt·文件系统·动静态库
程序员黑豆8 小时前
Java 注释详解:单行、多行与文档注释的完整指南
java·前端·ai编程