力扣:652. 寻找重复的子树

leetcode — 652. 寻找重复的子树 给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 示例 1: 1 / \ 2 3 / / \ 4 2 4 / 4 下面是两个重复的子树: 2 / 4 和 4 因此,你需要以列表的形式返回上述重复子树的根结点。 题目给出了一棵二叉树 返回树中 阅读详情
package com.算法专练.力扣.寻找重复的子树;

import java.util.*;

/**
 * @author xnl
 * @Description:
 * @date: 2022/9/5   23:14
 */
public class Solution {
    public static void main(String[] args) {
        Solution solution = new Solution();
        TreeNode node = new TreeNode(1, new TreeNode(2, new TreeNode(4), null),
                new TreeNode(3, new TreeNode(2, new TreeNode(4), null), new TreeNode(4)));
        System.out.println(solution.findDuplicateSubtrees(node));
    }

    /**
     * 使用hash,序列化字符串
     * @param root
     * @return
     */
    Map<String,TreeNode> map = new HashMap<>();
    Set<TreeNode> set = new HashSet<>();
    public List<TreeNode> findDuplicateSubtrees(TreeNode root) {
        dfs(root);
        return new ArrayList<>(set);
    }

    private String dfs(TreeNode node){
        if (node == null){
            return "";
        }
        StringBuilder sb = new StringBuilder();
        sb.append(node.val);
        sb.append("(");
        sb.append(dfs(node.left));
        sb.append(")(");
        sb.append(dfs(node.right));
        sb.append(")");
        String serial = sb.toString();
        if (map.containsKey(serial)){
            set.add(map.get(serial));
        } else {
            map.put(serial, node);
        }
        return serial;
    }
}

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;
      }
  }

快手商业化风控内容审核场景下的大模型早期探索与应用 在处理大量的自动语音识别(ASR)输出时,面临的主要挑战之一是文本的冗长和格式混乱,这严重影响了审核人员的阅读效率。为了解决这一问题,我们利用大模型的理解能力对文本进行智能总结,可以显著优化文本内容,使其更加清晰并且具有可读性。该方式极大地提高了审核过程的效率,审核人员可以更快地处理信息,减少了处理时间和劳动强度。 阅读详情

相关推荐

SAP 财务快速记账之—G/L Item Fast Entry

SAP FICO 运维解决方案

lijinbao171022的博客 1647

LeetCode 652:寻找重复的子树

目录LeetCode 652:寻找重复的子树题目描述解题 LeetCode 652:寻找重复的子树 题目描述 解题      /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} *

s_Shune 244

运算放大器测试方法-输入失调电压

由于运放输入回路的不对称性,在输入端将产生一定的误差信号,从而限制运放信号灵敏度。通常用输入失调电压(VOS)、输入失调电流(Ios)和输入偏置电流(IB)表示。运放有四个主要特征:输入失调特征、开环特征、共模特征及输出特征。其放大倍数较大,由于外界的影响,即使运放的输入端产生较小的输入信号,经过放大,在输出端也会产生较大的误差。为能精确测量其性能,一般采用辅助运放进行测试。下面着重讲了运放的主要参数及如何精确测量这些参数。文中DUT代表被测运放,A代表辅助运放。

weixin_46135931的博客 1万+

leetcode:652. 寻找重复的子树

那么我们只要使用一个哈希表存储所有子树的序列化结果,如果某一个结果出现了超过一次,我们就发现了一类重复子树。

OceanStar的博客 209

用 sapgenpse 把 SAPCRYPTOLIB 的 SNC 真正配通

摘要: 在SAP系统中配置SNC(Secure Network Communications)时,sapgenpse工具是关键,尤其在旧版本或组件缺乏图形化维护工具时。核心步骤包括安装SAP Cryptographic Library、创建PSE(Personal Security Environment)、生成运行凭据,并确保证书交换顺序正确。常见问题如RFC连接失败或握手错误,往往源于PSE创建或凭据配置不当。需特别注意SECUDIR目录设置、PSE身份管理(单一或独立PSE方案)、以及服务账号凭据的权

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 66

MIKE 21 教程 1.2 网格搭建界面介绍之点线面要素的高阶处理 (Mesh Generator 工具)

MIKE 21 教程 手把手教学系列 1.1 网格搭建界面介绍之点线面要素的高阶处理 (Mesh Generator 工具) ​ 上一篇文章讲解了如何创建基本的点、线、面要素 MIKE 21 教程 1.1 网格搭建界面介绍之点线面的创建 本节来讲一下对点线面要素的高阶处理,主要包括要素修改与打断线(break line)的讲解 ​

Hello Word 4148

Leetcode 652:寻找重复子树

题目如下: 给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 示例 1: 1 / \ 2 3 / / \ 4 2 4 / 4 下面是两个重复的子树: 2 / 4 和 4 来源:力扣(LeetCode)题目链接:原题 这个题目可以让我们好好想想如何利用二叉树的前序、中序、后序遍历框架。关于各个遍历可以看:二叉树各个遍历递归非递归实现 这里我们要找出重复的

weixin_45146520的博客 290

游戏引擎揭秘:大厂为何死磕自研?

游戏引擎本质与商业价值解析 游戏引擎是集成了渲染、物理、动画等核心功能的开发工具包,其价值在于让开发者免于重复编写底层代码,专注于游戏内容创作。商业引擎(如Unity/Unreal)虽降低了开发门槛,但头部厂商仍坚持自研引擎,主要基于以下考量: 经济性:长期项目分摊自研成本后,比商业引擎分成更划算; 可控性:完全掌握底层代码,能针对性优化核心玩法需求; 技术壁垒:专属引擎成为厂商的竞争优势,如米哈游的跨平台渲染技术; 项目适配:超大型游戏(开放世界/MMO)需要深度定制解决方案。 这种"短期高投入

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 263

leetcode-652:寻找重复的子树

对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。如果两棵树具有相同的结构和相同的结点值,则它们是重复的。给定一棵二叉树 root,返回所有重复的子树。

菊头蝙蝠的博客 216

通过InoDriverShop伺服调试软件连接汇川SV660F系列伺服的具体方法示例

通过InoDriverShop伺服调试软件连接汇川SV660F系列伺服的具体方法示例

Robot_PLC_HMI_Automation 1万+

从 Open SQL JOIN 走向 ABAP CDS Association:把查询写成可复用的数据模型

摘要: 本文通过飞行模型示例,对比了ABAP中三种表关联实现方式:Open SQL JOIN、CDS显式JOIN和CDS Association。重点解析了Association的本质是将表关系声明为数据模型语言,使用时通过路径表达式按需展开为JOIN。文章指出路径表达式在不同位置会默认展开为不同JOIN类型(如SELECT列表默认为LEFT OUTER),并演示了如何用[inner]强制指定INNER JOIN。最后结合S/4HANA实际案例,说明Association通过中心化关系定义和路径复用,能有效

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 383

LeetCode 652: 寻找重复的子树 Find Duplicate Subtrees

题目: 给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。两棵树重复是指它们具有相同的结构以及相同的结点值。Given a ...

爱写Bug 177

YOLOv13改进策略【Neck】| CVPR2024 LGAG:大核分组注意力门模块,3×3分组卷积与注意力协同的特征精准融合

本文记录的是利用LGAG 模块改进 YOLOv13 的颈部融合部分。(Large-kernel Grouped Attention Gate)通过3×3分组卷积与注意力机制结合,引导解码器处理特征与跳接特征的精准融合。本文利用模块,通过3×3分组卷积扩大感受野以捕捉更广泛局部空间上下文,同时结合注意力机制生成自适应注意力系数,对YOLOv13中关键目标特征赋予高激活值、抑制冗余背景特征,在特征融合阶段实现全局语义与局部细节的高效结合,减少计算成本的同时提升特征表达能力,增强模型对复杂场景下目标的检测精度与效

Limiiiing的博客 103

Leetcode 652:寻找重复的子树(超详细的解法!!!)

给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 示例 1: 1 / \ 2 3 / / \ 4 2 4 / 4 下面是两个重复的子树: 2 / 4 和 4...

coordinate的博客 1821

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

LeetCode(652):寻找重复的子树 Find Duplicate Subtrees(Java)

2019.11.12 #程序员笔试必备# LeetCode 从零单刷个人笔记整理(持续更新) github:https://github.com/ChopinXBP/LeetCode-Babel 这题需要借助哈希表对已遍历的子树进行存储,为了避免重复计算,哈希表选取的key值可以选取序列化后的二叉树,通过后序遍历递归进行。 传送门:寻找重复的子树 Given a binary tree, re...

NJU_ChopinXBP的博客 270

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LeetCode:652. 寻找重复的子树

/ 指向 TreeNode 对象的指针类型。

x15943088920的博客 262

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java found dulicate_LeetCode 652: 寻找重复的子树Find Duplicate Subtrees

LeetCode 652: 寻找重复的子树 Find Duplicate Subtrees题目:给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。两棵树重复是指它们具有相同的结构以及相同的结点值。Given a binary tree, return all duplicate subtrees. For each kind of duplica...

weixin_36024234的博客 172

图解LeetCode——652. 寻找重复的子树(难度:中等)

那么,在上面的描述中,我们在将子树转化为字符串的时候,指出可以采用前序或后续遍历,为什么不能采用中序遍历呢?请看下面的图示,当我们采用中序遍历的时候,我们发现,针对树A和树B,转换后的结果(不同节点,我们采用“/”分割)是相同的,但是树A和树B却不是重复的子树。根据题意,我们要找出重复的子树,那么,就需要我们针对给出的树进行遍历,来统计这个树是由哪些子树构成的。拼装的树的字符串(每个节点以“/”分割),value存储的是遍历子树过程中,相同子树出现的个数。【输出】[[2,3],[3]]

爪哇缪斯的博客 407

[哈希表][二叉树]leetcode652:寻找重复的子树(medium)

题目: 题解: 使用后序遍历二叉树的方法,来将子树存在hashmap中,并将子树的数量标记为1。若出现重复子树,则将该子树的根节点添加到result中。 代码如下: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNod...

algsup 464

leetcode:652. 寻找重复的子树【二叉树序列化锁定子树】

通过序列化锁定子树不失为一种好方法然后map和set的灵活运用这是一道hard的mid。

小楼一夜听春雨 644

Leetcode652:寻找重复的子树~(对三种遍历的思考)

思路:   还是一样,拿到题目我们要思考一个二叉树节点需要做什么,到底用什么遍历顺序就清楚了。有时候我们可能搞不清楚bfs和二叉树三种遍历的区别,其实bfs就是二叉树的三种遍历方式方式类似,只是有时候bfs的树不是简单二叉树,而是变化的多叉树嘛。但是在纯二叉树的问题中,我们就考虑三种遍历方式。在本题既然是相同的结构,注意到不是相同的数值还是啥的,而是相同的子树~~既然是子树,我首先想到的是从下到上用后序遍历,注意到! 无论是前序、中序还是后序遍历,他们都是递归道最小结构然后回溯,只是顺序不同,到每个.

qq_37297658的博客 231

leetcode652. 寻找重复的子树

leetcode652. 寻找重复的子树 给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 示例 1: 1 / \ 2 3 / / \ 4 2 4 / 4 下面是两个重复的子树: 2 / 4 和 4 因此,你需要以列表的形式返回上述重复子树的根结...

peony的博客 199

Leetcode 652. 寻找重复的子树 C++

Leetcode 652. 寻找重复的子树 题目 给定一棵二叉树,返回所有重复的子树。对于同一类的重复子树,你只需要返回其中任意一棵的根结点即可。 两棵树重复是指它们具有相同的结构以及相同的结点值。 示例: 1 / \ 2 3 / / \ 4 2 4 / 4 下面是两个重复的子树: 2 / 4 和 4 因此,你需要以列表的形式返回上述重复子树的根结点。 题解 后序

weixin_43750513的博客 603

刷题随记 - 10. 寻找重复的子树(652)

LeetCode 652 medium https://leetcode-cn.com/problems/find-duplicate-subtrees/ 参考:公众号 labuladong 思路 将二叉树序列化 将左右子树序列化后的结果,和根节点相加,就知道自己长什么样子 放到 Map 中比较,如果存在,则将根节点指针 保存一次 var findDuplicateSubtrees = function(root) { let nodeArray = [] let nodeMap = n

qq_44787943的博客 231

leetcode652. 寻找重复的子树(java)

输入:root = [1,2,3,4,null,2,4,null,null,4]注意:序列化可以用前序和后序,不能使用中序,因为中序出来的结果不是唯一的。如果两棵树具有 相同的结构 和 相同的结点值 ,则认为二者是 重复 的。输入:root = [2,2,2,3,null,3,null]给你一棵二叉树的根节点 root ,返回所有 重复的子树。树中的结点数在 [1, 5000] 范围内。输入:root = [2,1,1]输出:[[2,4],[4]]输出:[[2,3],[3]]相同的子树序列化后结果相同。

SP_1024的博客 897

leetcode652 寻找重复的子树

labuladong 如何判断我们应该用前序还是中序还是后序遍历的框架? 还是那句话,根据题意,思考一个二叉树节点需要做什么,到底用什么遍历顺序就清楚了。 题目链接: leetcode652 寻找重复的子树 本题思路: 如果你想知道以自己为根的子树是不是重复的,是否应该被加入结果列表中,你需要知道什么信息? 你需要知道以下两点: 1、以我为根的这棵二叉树(子树)长啥样?使用「后序遍历」框架,通过拼接字符串把二叉树序列化 2、以其他节点为根的子树都长啥样?借助HashMap,存每个节点的子树的序列化结果以.

去创造 211
上一篇: 力扣:1582. 二进制矩阵中的特殊位置
下一篇: 牛客网:NC138 矩阵最长递增路径
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值