题目描述:树的子结构

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

题目分析:此题可以拆成两题,1.在二叉树中查找是否存在某个结点;2.判断两个二叉树是否有相同的结构

Java代码:

class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}}
public class HasSubtree {public boolean hasSubtree(TreeNode root1,TreeNode root2) {boolean res = false;if (root1 != null && root2 !=null){if (root1.val == root2.val){//这时候判断两个二叉树是否有相同的结构res = isAHasB(root1, root2);}if (!res){res = hasSubtree(root1.left,root2);}if (!res){res = hasSubtree(root1.right, root2);}}return res;}   //判断两个二叉树是否有相同的结构public boolean isAHasB(TreeNode root1,TreeNode root2){if (root2 == null) return true;if (root1 == null) return false;if (root1.val != root2.val) return false;return isAHasB(root1.left, root2.left) && isAHasB(root1.right, root2.right);}}

转载于:https://www.cnblogs.com/weekend/p/6979684.html

《剑指Offer》题目:树的子结构相关推荐

  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. 剑指offer:树的子结构

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

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

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

  5. 剑指offer之树的子结构

    1 题目 输入两颗二叉树A和B,判断B是不是A的子结构(B树是A树的子结构) 比如:                   2     树A    3    5      树B   5         ...

  6. 剑指offer——判断树的子结构

    题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) https://www.nowcoder.com/practice/6e196c44c7004d ...

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

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

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

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

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

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

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

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

最新文章

  1. 基于Vue的小日历(支持按周切换)
  2. python使用matplotlib可视化3D曲面图、曲面图表示一个指定的因变量y与两个自变量x和z之间的函数关系
  3. mybatis-Batch Executor
  4. sublime插件 TortioseSVN
  5. 【转】STM32中的抢占优先级、响应优先级概念
  6. jQuery实现一个优雅的返回顶部
  7. 用python写一个简单的web服务器
  8. java创建xml文件 编码_Mybatis Generator 1.4.0 通过java编码和xml文件配置
  9. android经典动态壁纸,Android动态壁纸解析
  10. 如何让我的世界变成别人的世界(国际版)——HMCL启动器之如何同时用到mod和光影
  11. 动态路由 华三nat 静态路由_H3C MSR系列路由器典型配置举例(V5)-6W100
  12. 【每日一练:逻辑题】使用一个天平找8个球中其中一个重量不一致的球
  13. mysql phpwind_PHPWind环境搭建(Linux)
  14. 我的世界梦之边缘5服务器在维护吗,我的世界梦之边缘V 第一个包含动漫CG剧情的RPG服务器...
  15. 闭合导线的近似平均差(工程测量)
  16. 线性代数之——对称矩阵及正定性
  17. 创客匠人教您实现流量变现
  18. 华为AP6050DN配置手册
  19. Python遍历多个列表:ValueError: too many values to unpack (expected 2)
  20. 关于点到直线距离的理解

热门文章

  1. ARM 发布新一代 GPU 架构,还有一个机器学习处理器
  2. 干货 | 旷视科技俞刚:我在旷视研究院做检测
  3. (深入理解)matplotlib绘图原理(figure,axes,axis,canvas的区别)
  4. IEEE发布2022年科技趋势全球调研:人工智能和机器学习、云计算及5G将成为下一年最重要的技术...
  5. 【专家观点】刘经南院士:北斗+5G为何能引领新基建?
  6. 边缘数据中心维护的4个基本组件
  7. 数学与 AI「融通」 ,徐宗本院士进行超强“迁移学习”
  8. 人类首次登月50年后,这60家公司决心重返月球
  9. 学会动态丨中国人工智能学会重磅发布《2018人工智能产业创新评估白皮书》
  10. DeepMind集成AI智能体架构「MERLIN」:基于目标导向智能体中的无监督预测记忆