判断t1树中是否有与t2树完全相同的子树

2023-10-28

描述

给定彼此独立的两棵二叉树,树上的节点值两两不同,判断 t1 树是否有与 t2 树完全相同的子树。

示例1

输入:

{1,2,3,4,5,6,7,#,8,9},{2,4,5,#,8,9}

返回值:

true

备注:

1≤n≤500000

方法一:递归
要判断t2是否为t1的子树,那么就先在t1中找到t2的根节点,然后再进行遍历判断从当前节点的左右子树相不相同,如果一旦出现不同,那么立即返回false。
如果t2遍历完节点,t1也遍历完节点,则证明t2为t1的子树。
如果t1先遍历完节点,t2还没遍历完节点,那么则证明t2不是t1的子树。

public boolean isContains (TreeNode root1, TreeNode root2) {
        // 如果当前节点为空,那么则t2不可能为t1的子树了
        if(root1 == null)
            return false;
        // 递归寻找t1树中跟t2根节点相同的节点,即找到图中紫色圈的节点
        /* 三种可能,1、当前节点的左节点跟t2根节点相同
                    2、当前节点的右节点跟t2根节点相同
                    3、当前节点跟t2根节点相同
        */
        return isContains(root1.left,root2) || isContains(root1.right,root2)
            || check(root1,root2); 
    }

    pub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断t1树中是否有与t2树完全相同的子树 的相关文章

随机推荐

  • shell脚本实现彩色进度条

    代码 bin bash index 0 i 0 bar label while i le 100 do let index i 4 let colour 30 i 8 echo en e 1 colour m printf 100s d c
  • fopen w 和wb

    w 表示为文本文件 用则会把文件中的 0A 变为 0D0A 因为某些文件系统认为 0A 为文本文件的换行符 windows认为 0D0A 为文本文件的换行符 为了兼容其他文件系统 如从linux拷贝来的文件 windows上的fopen函数
  • Linux下的Nginx安装及web项目配置

    工作需要 记录一下 安装并运行Nginx Nginx是一款轻量级的网页服务器 反向代理服务器 相较于Apache lighttpd具有占有内存少 稳定性高等优势 安装Nginx首先要安装依赖的运行库 cd 至 usr local目录进行安装
  • 对于Quaternion的初步理解

    Quaternion 四元数 在unity中用于角度的旋转 Euler函数 返回一个旋转角度 绕z轴旋转z度 绕x轴旋转x度 绕y轴旋转y度 像这样的顺序 Quaternion Euler new Vector3 0 90 0 表示绕y轴旋
  • 键盘输入一个字符串,统计每个字符出现的次数,并且按照结果格式输出

    键盘输入一个字符串 统计每个字符出现的次数 并且按照结果格式输出 需求 aababcabcdabcde 获取字符串中每一个字母出现的次数 要求结果输出格式是 a 5 b 4 c 3 d 2 e 1 分析 A 定义一个字符串 B 定义一个Tr
  • C++:类和对象(下)---对类和对象深入一些的理解

    文章目录 构造函数 初始化列表 explicit关键字 匿名对象 构造函数 初始化列表 前面已然介绍过构造函数 但并未完全结束 构造函数有很多种写法 有带缺省参数的 有全缺省的 不带缺省参数的 但用前面的方法 都是对里面成员变量的一种赋值
  • Jitter Removal in Image and Sequence

    去除重影 消抖 在 jitter removal images and video sequences Using robust decision Based Adaptive spatio temporal median Algorith
  • jupyter notebook环境配置(重写config文件、配置默认工作文件路径、如何解决需要token登陆的问题/解决无法跳转浏览器问题等)

    一 重写config文件 1 输入cmd命令 jupyter notebook generate config 2 根据文件生成路径找到generate config文件 3 双击或者记事本打开jupyter notebook congig
  • Qt入门 工具栏QToolBar和菜单栏QMenuBar(六)

    只有在继承了QMainWindow的窗体 才会有this gt menuBar gt addMenu 以及this gt addToolBar 函数 Qmune QMune与QMenuBar之间的关系见下面的代码 方法1 QMenu men
  • 计算机系统结构选择题

    1 1 多处理机上两个程序段之间同时有先读后写和先写后读两种数据相关 则 C A 交换串行 B 不能并行执行 C 必须并行执行 D 顺序串行 2 输入输出系统硬件的功能对下面哪一类人员是透明的 A A 应用程序员 B 操作系统程序员 C 机
  • matlab 残差 dw,Eviews中的自相关检验与修正操作(一):残差图与DW检验

    自相关是指在时间序列资料中按时间顺序排列的观测值之间存在相关性或在横截面资料中按空间顺序排列的观测值之间存在相关性 它是不满足经典OLS回归的假定之一 自相关问题往往出现在时间序列数据中 所以也经常称为 序列自相关 自相关问题往往采用残差图
  • 2023全国大学生信息安全竞赛(ciscn)初赛题解

    战队信息 安全知识 甚至不用看视频 百度就有答案 除了那个最新的美国时政 其它的ChatGPT就能回答 Misc 签到卡 关注公众号 根据提示 直接print open flag read 国粹 脑洞题 给的题目原图有两排一模一样的麻将 思
  • Postman配置多环境请求地址

    作用 平时用postman测试接口时 同一个接口免不了要在多个环境测试 但是每次都要手动的修改请求的IP地址是在麻烦 可以用此方法提高效率 省事不少 1 创建 点击页面右上角齿轮 2 点击弹出页面右下角的Add按钮 3 填写请求地址 例如
  • 微分算子法个人整理

    陈文灯老师创立的微分算子法 在求解特定的微分方程能够省去大部分的计算时间 很久不写了 这篇为了回顾方便 一同有四种总结 感谢B站BV1D5411776Q的总结 考研加油 稳定发挥
  • [网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用

    这是作者的系列网络安全自学教程 主要是关于网安工具和实践操作的在线笔记 特分享出来与博友共勉 希望您们喜欢 一起进步 前文分享了Web安全学习路线 并实现了最简单的木马和病毒代码 这篇文章将详细讲述Shodan搜索引擎的基本用法及Pytho
  • Jenkins+Python自动化测试之持续集成详细教程

    前言 今天呢笔者想和大家来聊聊Jenkins Python自动化测试持续集成 废话呢就不多说了哟咱们直接进入主题哟 一 Jenkins安装 Jenkins是一个开源的软件项目 是基于java开发的一种持续集成工具 用于监控持续重复的工作 旨
  • Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?...

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Oracle中如何导出存储过程 函数 包和触发器的定义语句 如何导出表的结构 如何导出索引的创建语句 QQ群里有人问 如何导出一个用户下的存储过程 麦苗答 方法有多种 可以
  • springboot整合eurake

    Spring Boot整合Eureka是一个比较常见的场景 Eureka是一个服务注册与发现中心 可以方便地管理服务的注册与发现 在整合过程中 需要在pom xml文件中添加对Eureka Server的依赖 并在Spring Boot应用
  • Vue.js 下的瀑布流组件 vue-waterfall

    vue waterfall 详细介绍 Vue js 下的瀑布流组件 ES5 ES6 UMD 兼容 享受数据驱动带来的便利 让事情变得简单
  • 判断t1树中是否有与t2树完全相同的子树

    描述 给定彼此独立的两棵二叉树 树上的节点值两两不同 判断 t1 树是否有与 t2 树完全相同的子树 示例1 输入 1 2 3 4 5 6 7 8 9 2 4 5 8 9 返回值 true 备注 1 n 500000 方法一 递归 要判断t