LeetCode 572 题解

简介: LeetCode 572 题解

LeetCode 572 题解


给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。

image.png

image.png

思路

思路先通过后序遍历遍历二叉树,将当前节点值与t树的头节点值进行比较如果相同则进行递归比较s的子树与t是否相同,如果相同返回true,如果不同则继续遍历二叉树


代码实现


public boolean isSubtree(TreeNode s, TreeNode t) {
        if(s == null && t !=null) return false;
        // 判断一棵树 是不是另外一棵树的子树,有三种情况
        return isSubtree(s.left, t) || isSubtree(s.right, t) || isSubtreeWithRoot(s, t);
    }
    private boolean isSubtreeWithRoot(TreeNode s, TreeNode t) {
        if(s == null && t == null) return true;
        if(s == null && t != null) return false;
        if(s != null && t == null) return false;
        if(s.val != t.val) return false;
        return isSubtreeWithRoot(s.left, t.left) && isSubtreeWithRoot(s.right, t.right) ;
    }
相关文章
|
7月前
|
弹性计算 资源调度 算法
阿里云 Elasticsearch Serverless 检索增强型8.17 版免费邀测!
阿里云Elasticsearch Serverless检索增强型8.17版现已开放邀测
409 59
|
11月前
|
人工智能 自然语言处理 PyTorch
BrushEdit:腾讯和北京大学联合推出的图像编辑框架,通过自然语言指令实现对图像的编辑和修复
BrushEdit是由腾讯、北京大学等机构联合推出的先进图像编辑框架,结合多模态大型语言模型和双分支图像修复模型,支持基于指令引导的图像编辑和修复。
252 12
BrushEdit:腾讯和北京大学联合推出的图像编辑框架,通过自然语言指令实现对图像的编辑和修复
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
AI浪潮下,我们需要什么样的创新型人才?
本文探讨了AI浪潮下创新型人才的需求与培养路径。随着生成式人工智能(GAI)技术的突破,AI已渗透至各领域,重塑传统行业并带来机遇与挑战。创新型人才需具备跨学科知识融合、持续学习、创新实践能力及伦理责任感。GAI认证作为权威标准,助力人才技能提升和企业招聘。未来应加强跨学科教育、实践教学、持续学习与伦理教育,以培养更多适应AI时代的创新型人才。
|
数据可视化 数据挖掘
ECharts综合案例一:近七天跑步数据
使用ECharts进行一周跑步数据分析,通过雷达图展示多维度指标(如距离、速度、时间),颜色对比体现个人与平均表现。折线图则清晰显示每日里程趋势,代码示例展示了自定义的`radar`和`line`图表配置。图表交互性强,支持点击高亮,动画流畅,提供完整代码资源。#ECharts #跑步数据 #数据可视化
407 3
ECharts综合案例一:近七天跑步数据
|
搜索推荐 算法 API
向量数据库-Milvus
Milvus 是一个开源的、高性能的向量数据库,专为海量向量数据的快速检索而设计。在人工智能、计算机视觉、推荐系统和其他需要处理大规模向量数据的领域有着广泛应用【7月更文挑战第3天】
2181 7
|
Java 关系型数据库 MySQL
实时计算 Flink版操作报错合集之同步tidb到hudi报错,一般是什么原因
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
存储 算法 Linux
CTF—GIF文件格式、隐写方法及案例
CTF—GIF文件格式、隐写方法及案例
775 0
|
消息中间件 监控 JavaScript
Node.js中的进程管理:child_process模块与进程管理
【4月更文挑战第30天】Node.js的`child_process`模块用于创建子进程,支持执行系统命令、运行脚本和进程间通信。主要方法包括:`exec`(执行命令,适合简单任务)、`execFile`(安全执行文件)、`spawn`(实时通信,处理大量数据)和`fork`(创建Node.js子进程,支持IPC)。有效的进程管理策略涉及限制并发进程、处理错误和退出事件、使用流通信、谨慎使用IPC以及监控和日志记录,以确保应用的稳定性和性能。
|
存储 JSON Java
Nacos心跳机制解读(含简单源码分析)
Nacos心跳机制解读(含简单源码分析)
|
存储 Go 数据安全/隐私保护
CSP加密服务(一)
(一)  加密服务提供程序 缩写为:CSP,全称为:Cryptographic Service Provider 即加密服务提供者。它是windows系统中提供的用于加密的软硬件组件。通过对微软的加密应用程序接口即CrytoAPI(或CAPI)的编程访问它来提供身份验证、编码和各种的加密、签名算法。
1593 0