题目

链接:https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/

题解

这是道二叉树的题、重点在于如何判断这个B树是否是A树的子树。
我们可以先将A树进行先序遍历、在遍历的过程中判断B是否是A树的子树。那么怎么实现呢、遍历的时候我们可以先判断A或B是否是null,如果A是空的说明已经遍历到底了还没有找到和B匹配的子树这时就说明没有返回false,B为null根据题意null树不为任何树的子树返回false。

以上是遍历、判断就是当A,B都不为空时进行判断,判断很简单就是判断当前结点值是否相同、相同就下一个接着判断、直到B为空说明已经成功匹配完了,返回true。

参照力扣大佬写的题解:https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/solution/mian-shi-ti-26-shu-de-zi-jie-gou-xian-xu-bian-li-p/

代码:

 public boolean isSubStructure(TreeNode A, TreeNode B) {if (A == null || B == null){return false;}return recur(A,B) || isSubStructure(A.right,B) || isSubStructure(A.left,B);}public boolean recur(TreeNode A,TreeNode B){if (B == null) {return true;}if (A == null || A.val != B.val){return false;}return recur(A.left,B.left) && recur(A.right,B.right);}

(day 08 - 先序遍历+判断+递归)剑指 Offer 26. 树的子结构相关推荐

  1. 左神算法:判断 t1 树是否包含t2 树全部的拓扑结构(剑指 Offer 26. 树的子结构,Java版)

    本题来自左神<程序员代码面试指南>"判断 t1 树是否包含t2 树全部的拓扑结构"题目. 题目 剑指 Offer 26. 树的子结构 给定彼此独立的两棵树头节点分别为 ...

  2. 【LeetCode】剑指 Offer 26. 树的子结构

    [LeetCode]剑指 Offer 26. 树的子结构 文章目录 [LeetCode]剑指 Offer 26. 树的子结构 package offer;//定义树节点 class TreeNode{ ...

  3. LeetCode——剑指 Offer 26. 树的子结构

    一.题目 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A: 3/ \4 5/ \1 2 ...

  4. 剑指offer——26.树的子结构(不太熟)

    题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 知识点: 无 注意: 注意想法的递归实现(好好琢磨一下,不然可能会忘!) 代码实现: 具体实现分两步 ...

  5. 剑指offer 26 树的子结构

    输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A: 3 / \ 4 5 / 1 2 给定 ...

  6. 【无取巧解法,易于理解!】剑指 Offer 26. 树的子结构

    看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最"笨"最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法. 输 ...

  7. 剑指 Offer 26树的子结构(相关话题:对称性递归,在线算法)

    目录 开篇引言 题目描述 代码实现 题目拓展 拓展解读 一类 100. 相同的树

  8. 《剑指offer》-- 树的子结构、二叉树的镜像、二叉树的深度、平衡二叉树

    一. 树的子结构: 1.题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构. 2.解题思路: 这个题比较简单,利用递归的方式就可以判断B是不是A树的子结构 ...

  9. 剑指offer:树的子结构

    题目 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解题思路 暴力做法 取出树A/B的前序.中序: 判断这两个数组是否A都包含B,是则true. 前序和中 ...

  10. 《剑指Offer》-- 树的子结构(Python)

    题目 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 思路 看题目明显知道是遍历树的任务,而且遍历树应该第一时间反应出来的应该是递归实现遍历树. 题目是判断 ...

最新文章

  1. Commons-logging + Log4j 入门指南
  2. 怎么找回失踪的NTLDR文件
  3. java默认数组值_数组元素默认的初始值都是什么
  4. 类和模块 类和原型 工厂方法 构造函数 constructor
  5. Vue源码学习: 关于对Array的数据侦听
  6. 【模板】prim的heap优化
  7. linux进程管理试题,Linux 考试试题
  8. SQL Server 2017安装错误:Polybase要求安装Oracle JRE 7更新51或更高版本的两种解决方法
  9. 融云会话界面自定义功能_融云SDKv2.6.6官方最新版
  10. w25q64 linux,QSPI读写W25Q256和W25Q128以及W25Q64有什么区别?
  11. 基于OP放大器的有源模拟滤波器设计--一阶有源滤波器
  12. mysql netcdf_NetCDF官方读写终端ncdump和ncgen的用法
  13. 小程序如何通过云开发获取手机号
  14. 【单目标优化求解】基于matlab增强型黑猩猩优化器算法求解单目标优化问题【含Matlab源码 2013期】
  15. UEFI开发与调试---edk2中的Package
  16. LeetCode OJ 之 Number of 1 Bits (二进制位1的个数)
  17. 2015校园招聘360失败的惨痛经历
  18. 音圈电机工作原理与直线电机的对比
  19. oracle utl inaddr,oracle11gr2中ACL对UTL_INADDR的授权报错,急急急
  20. 70多G的Kindle电子书合集

热门文章

  1. 博客6:磁盘以及创建文件系统的相关知识点
  2. python __setattr__, __getattr__, __delattr__, __call__
  3. 21幅非常有创意的倒影摄影作品欣赏
  4. 第6 章 面向对象的程序设计
  5. 2.数据中台 --- 什么是数据中台
  6. 1.软件架构设计:大型网站技术架构与业务架构融合之道 --- 五花八门的架构师职业
  7. 6.微服务:从设计到部署 --- 选择部署策略
  8. 41.Linux/Unix 系统编程手册(下) -- 共享库基础
  9. 35.MySQL 常见问题
  10. magento xml配置详解(2)