二叉树OJ题(二)

简介: ✅每日一练:572. 另一棵树的子树 - 力扣(LeetCode)

faa24f653e9e42969f435bfdc209c7e7.png

解题思路:

1.如果根节点为空,那么返回false;

2.如果根节点相同,那么我们需要判断这2棵树是否相同,我们可以借助上面写的isSameTree方法去判断,如果相同,则subRoot是root的子树;

3.如果根节点不相同,我们需要在左子树或者右子树去找是否有和subRoot相同的树;

代码:

publicbooleanisSubtree(TreeNoderoot, TreeNodesubRoot) {
if(root==null||subRoot==null){
returnfalse;
        }
//判断2棵树是否相同if(isSameTree(root,subRoot)){
returntrue;
        }
//判断左子树是否有subRootif(isSubtree(root.left,subRoot)){
returntrue;
        }
//判断右子树是否有subRootif(isSubtree(root.right,subRoot)){
returntrue;
        }
returnfalse;
    }
publicbooleanisSameTree(TreeNodep, TreeNodeq) {
//如果p,q都为空,那么这2个树一定相同if (p==null&&q==null) {
returntrue;
        }
//如果q为空,p不为空,那么一定不相同if (p!=null&&q==null) {
returnfalse;
        }
//如果p为空,q不为空,那么一定不相同if (p==null&&q!=null) {
returnfalse;
        }
//如果p,q都不为空,那么要判断值,如果值不相同,那么一定不相同if (p.val!=q.val) {
returnfalse;
        }
//如果p,q都不为空,并且p,q的值相同,那么要判断p,q的左右子树的值,如果相同为真,反之;returnisSameTree(p.left, q.left) &&isSameTree(p.right, q.right);
    }

目录
相关文章
|
12月前
|
安全 编译器 C语言
C++入门1——从C语言到C++的过渡
C++入门1——从C语言到C++的过渡
187 2
|
消息中间件 Java 微服务
构建高性能微服务架构:Java后端实践
【4月更文挑战第8天】 在当今互联网应用的快速迭代与高并发挑战下,微服务架构以其灵活性和扩展性成为众多企业技术选型的宠儿。本文将深入探讨在Java后端开发中,如何构建一个高性能的微服务系统,涵盖从基础架构设计、关键技术选型到性能优化策略的全方位分析。我们将透过实际案例,剖析微服务实践中的最佳模式与常见陷阱,为后端开发人员提供一份实操指南。
|
SQL 存储 缓存
Mysql优化高级篇(全)
目录前言1. 简介1.1 安装1.2 MySQL逻辑架构存储引擎2. 索引优化分析2.1 原因2.2 常见通用的join查询2.3 索引2.3.1 索引分类2.3.2 索引结构2.3.3 索引情况2.4 性能分析2.4.1 id 前言 本篇文章主要涉及mysql的高级篇,主要是mysql的架构介绍、索引优化分析、查询截取分析、mysql锁机制以及主从复制等 在这之前的学习可参考我之前的文章进行学习 数据库知识 链接 数据库查询常用语句语法 博客链接 数据库中增删改常用语法语句(全) 博客
78794 19
Mysql优化高级篇(全)
|
11月前
|
机器学习/深度学习 人工智能 算法
探索深度学习在图像识别中的应用与挑战
【10月更文挑战第28天】 本文深入探讨了深度学习技术,特别是卷积神经网络(CNN)在图像识别领域的应用及其面临的主要挑战。通过分析CNN的工作原理和架构设计,揭示了其在处理大规模图像数据时的优势。同时,本文也讨论了当前深度学习模型在图像识别任务中遇到的一些关键问题,如过拟合、数据不平衡以及计算资源的需求等,并提出了相应的解决策略。此外,文章还展望了未来深度学习技术在图像识别领域的发展方向,包括模型优化、算法创新及应用场景的拓展。
116 1
|
开发框架 前端开发 .NET
VB.NET中如何利用ASP.NET进行Web开发
在VB.NET中利用ASP.NET进行Web开发是一个常见的做法,特别是在需要构建动态、交互式Web应用程序时。ASP.NET是一个由微软开发的开源Web应用程序框架,它允许开发者使用多种编程语言(包括VB.NET)来创建Web应用程序。
264 7
|
关系型数据库 数据库 PostgreSQL
把 PostgreSQL 当做对象数据库使用
本文阐述了如何把 PostgreSQL 当做一个对象数据库使用,及其好处。
2376 0
|
JavaScript Java
116.【SpringBoot和Vue结合-图书馆管理系统】(二)
116.【SpringBoot和Vue结合-图书馆管理系统】
123 0
|
缓存 监控 Linux
TOP 动态监视Linux系统
TOP 动态监视Linux系统
208 0
|
IDE Java 开发工具
一文吃透 Kotlin 中眼花缭乱的函数家族...(2)
一文吃透 Kotlin 中眼花缭乱的函数家族...(2)
一文吃透 Kotlin 中眼花缭乱的函数家族...(2)
|
前端开发 JavaScript 小程序
聊聊各端手势体系以及对 Web 标准手势的思考
聊聊各端手势体系以及对 Web 标准手势的思考
24617 2
聊聊各端手势体系以及对 Web 标准手势的思考