[LeetCode]572. Subtree of Another Tree(判断树t是否是树S的子树)

LeetCode --- 572. Subtree of Another Tree 解题报告 Given two non-empty binary treessandt, check whether treethas exactly the same structure and node values with a subtree ofs. A subtree ofsis a tree consists of a node insand all of this node... 阅读详情

572. Subtree of Another Tree

原题链接
Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this node’s descendants. The tree s could also be considered as a subtree of itself.

题目大意:
给定两个非空二进制树s和t,检查树t是否具有与s子树完全相同的结构和节点值。 s的子树是由s中的节点和所有这个节点的后代组成的树。 树也可以被认为是一个本身的子树。

Example 1:
Given tree s:

     3
    / \
   4   5
  / \
 1   2

Given tree t:

   4 
  / \
 1   2

Return true, because t has the same structure and node values with a subtree of s.

Example 2:
Given tree s:

     3
    / \
   4   5
  / \
 1   2
    /
   0

Given tree t:

   4
  / \
 1   2

Return false.

思路:

  • 树s和树t均非空,判断s是不是整体与t相同,相同返回TRUE,不同的话判断s的左子树和右子树是否与t相同,依次递归下去
  • 关键是写出一个函数,给定两个二叉树根节点,判断两个二叉树是否相等
  • 需要注意的还有代码中注释部分

代码如下:

C++ 

struct TreeNode {
     int val;
     TreeNode *left;
     TreeNode *right;
     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};

class Solution {
public:
    bool isSubtree(TreeNode* s, TreeNode* t) {
        //下面这个if很重要,题目给定两个均为非空二叉树,假如s(或s的子树)为空,直接返回false)
        if (s == nullptr) //非空二叉树
            return false;
        if(isSame(s, t))
            return true;
        return isSubtree(s->left, t) || isSubtree(s->right, t);
    }
    //判断两个二叉树是否相同
    bool isSame(TreeNode* s, TreeNode* t){
        if(s == nullptr && t == nullptr)//节点均为空
            return true;
        if(s == nullptr || t == nullptr)//(节点不是均为空情况下)s为空或者t为空
            return false;
        if(s->val != t->val)
            return false;
        return isSame(s->left, t->left) && isSame(s->right, t->right);
    }
};

相关推荐

PADS VX2.7学习记录05-PADS Layout设计文件Gerber等输出整理

在“PDF Document”栏中,依次选中除REF-TOP和REF-BOT之外的文件,单击图标,将其余PDF Document文件进行删除,如图所示。然后单击【生成PDF】按钮,即可创建一份PDF格式的位号图。

tianpu2320959696的博客 1027

leetcode572 另一棵树的子树

1.与100、101解法相同。

dokii1的博客 281

Python爬虫实战:抓取天气数据并生成可视化图表(完整可复制代码)

工具/库核心作用选型理由requests发送HTTP请求,获取天气网页内容语法简单,上手快,支持Headers配置(反爬)解析HTML页面,提取目标天气数据无需懂复杂XPath,API直观,快速定位标签pandas数据清洗、整理(如日期/温度格式化)一键处理数据格式,与matplotlib无缝适配matplotlib生成可视化图表(折线图/饼图/柱状图)Python主流可视化库,定制性强,支持保存高清图生成随机User-Agent,应对反爬自动更新UA池,避免手动维护。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 910

(另一个树的子树)给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。

题目:给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 思路:1、t和s子树中的结构一样(t是s的子树) 2、s和t是相同结构的树 3、空树可以认为是任意二叉树的子树。若t为空树,s不为空树,则t也是s的一颗子树 class Solution { //判断两树是否...

大大大大大玟的博客 457

2024高项范文-论项目成本管理

例如,在需求分析和设计阶段,安排了较多经验丰富的人员,确保基础工作的高质量完成,同时也避免了后续因需求变更等问题导致的时间和成本浪费。虽然项目进度略有延迟,但通过有效的成本管理和调整,最终在可控的成本范围内完成了项目,并且软件的质量也得到了保障。通过这个案例可以看出,在项目成本管理过程中,要紧密结合时间管理,根据实际情况灵活调整策略,注重风险的防范和应对,才能实现时间和成本的平衡,确保项目的成功。资源规划是成本基准形成的基础。识别和评估项目中的成本风险,并制定相应的应对措施,以降低风险对项目成本的影响。

xjflion的博客 1190

RK3588开发笔记-USB3.0接口调试

RK3588平台是一款强大的处理器,但要充分发挥其性能,需要正确调试其各种接口,包括USB 3.0接口。USB 3.0接口提供了更快的数据传输速度,但也可能面临一些问题。本篇博客将介绍如何在RK3588平台上调试USB 3.0接口,以确保其稳定性和性能。RK3588芯片具有强大的USB资源,包括多个USB接口和高速数据传输能力。RK3588通常具有多个USB接口,包括USB 2.0和USB 3.0。USB 2.0用于低速和全速设备连接,而USB 3.0则用于高速设备连接。

flypig has a dream! 2561

【LeetCode】第572题——另一个树的子树(难度:简单)

【LeetCode】第572题——另一个树的子树(难度:简单)题目描述解题思路代码详解注意点 题目描述 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 示例 1: 给定的树 s: 3 / \ 4 5 / \ 1 2 给定的树 t: 4 / \ 1 2 返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。

Se7en_Dayz的博客 407

lammps案例:堆垛层错能的计算

大家好,我是小马老师。 本文介绍如何使用lammps计算晶体的堆垛层错能。 正常晶体中的原子按照一定的规律排列,原子面按ABCABC……的顺序排列,如下图所示: 当某个原子面被抽出后会形成堆垛层错,如图中的蓝色原子层被抽出,原子面排列变为ABCBCA……: 可通过计算堆垛层错能形成前后的能量差计算堆垛层错能,计算公式为: E0为初始能量 Ef为删除一个原子面后的能量 A为界面面积 下面分享一个lammps计算堆垛层错能的in代码,本代码由Richard Glaze完成,本文稍作修改并进行了注释,以供初

lammps_jiayou的博客 5436

leetcode:572. 另一个树的子树

题目来源 572. 另一个树的子树 题目描述 题目解析 思路: 一个树是另一个树的子树 则 要么这两个树相等 要么这个树是左树的子树 要么这个树hi右树的子树 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int va

OceanStar的博客 271

Xinference新手指南(一个命令直接安装成功)

对于新手,必须得学会使用docker部署,这是基本功!这里就不过多去介绍了,如果评论要出教程的话,以后再出了。

Ven%的博客 820

6、云计算中的多核技术:架构、并行性与局限性

本博文深入探讨了云计算中多核技术的架构、并行性及其局限性。文章详细介绍了多核处理器的基础概念、并行硬件和软件的设计原理,并对硬件和软件并行性进行了分类和分析。同时,文章讨论了多核架构在实际应用中面临的挑战,如功率墙、内存墙和ILP墙等问题,并提出了应对策略。此外,还总结了多核技术在高性能计算、实时处理和云计算等领域的应用机遇。文章旨在帮助读者更好地理解多核技术的关键问题,并为未来的技术探索提供方向。

java5的博客 123

LeetCode572. 另一棵树的子树

记录个人解题思路,还有做树这种题的大思路

fight_p的博客 391

基于STM32F1XX 、HAL库的OPT4001-Q1环境光传感器驱动应用C语言程序设计

OPT4001-Q1 的输出是半对数 的,具有 9 个二进制对数满量程照度范围,每个范围内具有高度线性响应,使得 PicoStar™ 型号的测量能力为 312.5μlux 至 84klux,USON 型号的测量能力为 400µlux 至 107klux。// 禁用中断(示例)

PP_Cottage的博客 462

LeetCode //C - 572. Subtree of Another Tree

【代码】LeetCode //C - 572. Subtree of Another Tree。

Made in Code 1994

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

老版QQ原生表情gif动态

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

【LeetCode & 剑指offer刷题】树题8:26 树的子结构(572. Subtree of Another Tree)

【LeetCode & 剑指offer刷题】树题8:26 树的子结构(572. Subtree of Another Tree) 【LeetCode & 剑指offer 刷题笔记】目录(持续更新中...) 572. Subtree of Another Tree Given two non-empty binary trees ...

技术改变世界 823

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

572. 另一个树的子树(subtree-of-another-tree)递归思维解答

572. 另一个树的子树(subtree-of-another-tree) 题目 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 示例 1: 给定的树 s: 3 / \ 4 5 / \ 1 2 给定的树 t: 4 / ...

mirana的专栏 400

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

leetcode 572 Subtree of Another Tree (子树)

题目描述 给定两个非空的二叉树s和t,检查树t的结构和节点值是否和s的一个子树完全相同。s的子树是由s中的一个节点和该节点的所有后代组成的树(一直到根节点)。树S也可以被认为是它自己的子树。 主要代码c++ /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *...

爱喝舒化奶的博客 380

[leetcode] 572. Subtree of Another Tree @ python

原题 Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this n...

闲庭信步 500

572. Subtree of Another Tree*

572. Subtree of Another Tree* https://leetcode.com/problems/subtree-of-another-tree/ 题目描述 Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values ...

珍妮的选择的博客 257

Leetcode572 Subtree of Another Tree解题方案

Leetcode572 Subtree of Another Tree 题目描述 Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this node’s descendants.

初七的博客 161

第26题:LeetCode572:Subtree of Another Tree另一个树的子树

题目描述 给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。 示例 1: 给定的树 s: 3 / \ 4 5 / \ 1 2 给定的树 t: 4 / \ 1 2 返回 true,因为 t 与 s...

Lightmare625 327

LeetCode 572 Subtree of another tree

Given two non-empty binary trees s and t, check whether tree t has exactly the same structure and node values with a subtree of s. A subtree of s is a tree consists of a node in s and all of this node’s descendants. The tree s could also be considered as a

Tech in Pieces 298

LeetCode - 572 - 另一个树的子树(subtree-of-another-tree)

一 目录 不折腾的前端,和咸鱼有什么区别目录一 目录二 前言三 解题及测试四 LeetCode Submit五 解题思路六 进一步思考二 前言 难度:简单涉及知识:树题目...

weixin_41806099的博客 192

Leetcode 572. Subtree of Another Tree (python+cpp)

Leetcode 572. Subtree of Another Tree题目解法:双层递归 题目 解法:双层递归 虽然这道题目标的easy,但是其实蛮考对于递归的理解的。最直观的解法是双层递归,外层递归遍历节点,内层递归判断当前遍历的节点形成的子树是否与目标树相同。外层循环只要有一个节点符合情况即可,二内层循环需要每个节点都相同才行 python: class Solution: def isSubtree(self, s: TreeNode, t: TreeNode) -> bool:

qq_37821701的博客 351

LeetCode572:Subtree of Another Tree

Given two non-empty binary treessandt, check whether treethas exactly the same structure and node values with a subtree ofs. A subtree ofsis a tree consists of a node insand all of this node...

卷卷萌的博客 320

leetcode 572. Subtree of Another Tree (easy)

递归 判断是否是子树需要分为两个步骤: 一、判断是否是子树 对每个s的节点si,有三种情况,其中一种情况成立则返回true 以si为根节点的子树 = t树 以si的左子树为根节点的子树 = t树 以si的右子树为根节点的子树 = t树 二、判断两个树是否相等 这个判断可以参考leetcode 101. 判断镜像树的步骤: 两边都不存在 true 一边不存在,一边存在 false 值不相等 f...

Rh's blog 253
上一篇: [LeetCode]543. Diameter of Binary Tree(计算二叉树的直径的长度)
下一篇: [LeetCode]108. Convert Sorted Array to Binary Search Tree(升序数组转化为平衡二叉树)
whl_program
博客等级 码龄11年 101粉丝 279原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值