当前位置: 首页 > news >正文

算法---LeetCode 剑指 Offer 26. 树的子结构

1. 题目

原题链接

输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)
B是A的子结构, 即 A中有出现和B相同的结构和节点值。
例如:
给定的树 A:
3
/ \
4 5
/ \
1 2
给定的树 B:
4
/
1
返回 true,因为 B 与 A 的一个子树拥有相同的结构和节点值。
示例 1:
输入:A = [1,2,3], B = [3,1]
输出:false

示例 2:
输入:A = [3,4,5,1,2], B = [4,1]
输出:true

2. 题解

2.1 解法1: 递归

遍历每个节点, 以该节点为根, 比较是否相同, 若有相同, 即为子结构

classSolution{publicbooleanisSubStructure(TreeNodeA,TreeNodeB){if(A==null||B==null){returnfalse;}returnrootIsSub(A,B)||isSubStructure(A.left,B)||isSubStructure(A.right,B);}/** * 以 A , B 为根节点的树, 树A是否包含树B * * @param A * @param B * @return */publicbooleanrootIsSub(TreeNodeA,TreeNodeB){if(B==null){returntrue;}if(A==null||A.val!=B.val){returnfalse;}returnrootIsSub(A.left,B.left)&&rootIsSub(A.right,B.right);}}

参考:
LCR 143. 子结构判断(先序遍历,清晰图解)

递归方式解决

http://www.jsqmd.com/news/446804/

相关文章:

  • Web前端之上传文件夹、webkitdirectory
  • 通俗易懂解释知识图谱(Knowledge Graph)
  • Web前端之实现酷炫的仪表进度条、JavaScript动态设置Css属性值、标签元素属性选择器、hsl样式函数
  • 优先队列(priority_queue)总结
  • Web前端之实现累计功能、原生与UniApp版微信小程序两种方式实现、计算、累加、getElementById、innerHTML、Number
  • 在 SAP Kyma 上使用 Redis 服务
  • Web前端之鼠标悬浮,鼠标移入和鼠标移出、getElementById、onmouseover、onmouseout、mouseenter、mouseleave、hover
  • 读懂 Cost-Based Optimization:SAP HANA SQL 优化器如何用成本模型选出更快的执行计划
  • 这才是未来的“openclaw”
  • git 命令总结
  • postpresql 表结构修改、添加字段、外键、主键自增逻辑设置
  • 从扫描到索引:SAP HANA 查询处理路径与优化技巧的落地实战
  • 把运行在 Docker 容器内的 Microsoft SQL 服务器部署到 SAP Kyma 中
  • Python—1、基础篇
  • 读懂 SAP HANA 的 Optimized Logical Plan 与 Optimized Physical Plan:把优化器的思路“看见”
  • 在 SAP BTP Kyma Runtime 上使用 Redis 读取和存储数据
  • [从0开始学Java|第十二天]学生管理系统升级 - 详解
  • 服务端之nestJS常用异常类及封装自定义响应模块
  • ROS 摄像头参数标定
  • OBLITERATUS:解锁大模型无限潜力
  • 会穿搭才是真的美,聪明女人必学的搭配技巧,优雅高级又有气质
  • 为macOS Finder提供直观的剪切粘贴体验 - 实践
  • C#委托学习思维导图
  • 一、HTML简介与开发环境
  • 技术架构解析:如何构建高并发、合规的本地生活多平台抽佣系统
  • 小程序商城平台哪家强?做商城小程序选哪个制作平台? - 码云数智
  • [kotlin] 从Java到Kotlin:掌握基础语法差异的跃迁指南 - 指南
  • 小程序商城哪个平台好,SaaS小程序商城平台深度对比 - 码云数智
  • 小程序开发一个多少钱啊,三种方式的费用构成与适用场景 - 码云数智
  • 如何做一个微信小程序商城 - 码云数智