题目描述

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

解题思路

首先判断 A 和 B 是否是空,如果为空,返回false;否则找到 A 和 B 的根结点相同的结点,然后依次比较。可以用递归的形式在 A 中找 B 的根结点。

实现

/*树结点定义*/
public class TreeNode {int val = 0;TreeNode left = null;TreeNode right = null;public TreeNode(int val) {this.val = val;}
}
/*实现*/
public class Solution {public boolean HasSubtree(TreeNode root1,TreeNode root2) {if (root1 == null || root2 == null) return false;boolean result = check(root1, root2);if (!result) result = HasSubtree(root1.left, root2) || HasSubtree(root1.right, root2);return result;}private boolean check(TreeNode root1, TreeNode root2) {if (root1 == null && root2 == null) return true;else if (root2 == null) return true;else if (root1 == null) return false;if (root1.val == root2.val) return check(root1.left, root2.left) && check(root1.right, root2.right);return false;}
}

转载于:https://www.cnblogs.com/ggmfengyangdi/p/5769737.html

剑指Offer_17_树的子结构相关推荐

  1. 剑指 offer 树的子结构

    子树和子结构的区别 这棵大树的子树有: 4 和 5 对应的两棵子树 3 本身自己完整的一棵树 而里面的小框圈出来的不是 3 这棵大树的子树! 还是上面那张图,子结构就是不用那么严格,图中的小框就是整棵 ...

  2. 剑指offer 树的子结构

    题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解决方案: /** public class TreeNode {int val = 0;Tree ...

  3. 剑指offer——树的子结构

    Q:输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) A:要查找树A中是否存在和树B结构一样的子树.我们可以分为两步: 第一步在树A中找到和B的根节点一样的值 ...

  4. 2021-06-28剑指offer26.树的子结构

    自顶向下遍历,自底向上返回. 先逐层比较,然后再传递,相当于前序遍历的模板 由于只要有一个true都可能为true,所以在比较返回的过程中全部为或的关系. 什么时候应该返回呢? 1)在遍历的过程中,当 ...

  5. 【LeetCode笔记】剑指 Offer 26-. 树的子结构 (Java、双重dfs、二刷)

    文章目录 题目描述 思路 & 代码 二刷 题目描述 思路很值得看的一道题,和之前路径总和 III的双递归思路.结构很像 思路 & 代码 isSubStructrue() 进行一个前序的 ...

  6. DayN剑指offer树基础

    //树的前序中序后续递归非递归+层序+按照每层节点输出 package baselearning.tree;import java.util.*;class TreeNode {String val; ...

  7. 剑指-利用树的前序遍历和中序遍历结果,输出树的原始结构

    需要注意两点:1.对于前序遍历第一个即为根节点.2.在前序遍历找到根节点之后,在中序遍历中根节点之前的全部为根节点的左子树,后面的全部为右子树.所以可以根据中序遍历中根节点之前的数量,在前序遍历中找出 ...

  8. 剑指OFFER思路总结与代码分享——树篇(Java实现)

    剑指OFFER树相关 55-1 二叉树的深度 27 二叉树的镜像 54 二叉搜索树的第K大节点 32-II 从上到下打印二叉树 07 重建二叉树 68-I 二叉搜索树的最近公共祖先 68-II 二叉树 ...

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

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

最新文章

  1. 每天一点Linux --- 目录的可执行权限
  2. linux yum 离线安装rpm包
  3. Github开源!适合初学者的机器学习和深度学习的资料合集
  4. 验证码 -图形图像识别的算法。http://blog.csdn.net/xtalk2008/archive/2007/11/01/1861310.aspx...
  5. 深入浅出JVM-内存模型
  6. java教程-scala教程-带你从菜鸟入门
  7. android java 调用js_Android Java/JS互相调用
  8. 布同:vim插件开发实例和讲解
  9. 零散知识点总结(1) Gradle 使用配置总结
  10. 用户 与组的相关练习
  11. OpenCV-计算轮廓面积cv::contourArea
  12. java维护_java配置和维护
  13. 怎么引导2岁孩子洗手问题
  14. ftp服务器的搭建与使用
  15. snipaste滚动截图方法_老板让你把整个网页截图形成长图,具体怎么做?
  16. Docker Study Notes_Design in 2023
  17. winform 三层(BLL.DAL.MODEL)
  18. 大厂面经系列 | 前端 | 美团,字节,京东,顺丰,携程 等题目分享
  19. 100个冷笑话,越往后越冷(郁闷时专用……)
  20. Win7如何禁用安全模式 如何禁止进入安全模式?

热门文章

  1. 通过Easy-UI 树插件实现ArcGIS多个服务图层的图层控制
  2. wxPython多线程界面卡死或在不同平台崩溃问题
  3. 如何成为一名优秀的架构师
  4. 我是如何在阿里巴巴面试中壮烈牺牲的?(内含面试题)
  5. 阿里巴巴技术专家三画:如何画好架构图
  6. Spring Boot自动配置原理、实战
  7. 权限系统设计模型分析(DAC,MAC,RBAC,ABAC)
  8. Mycat源码篇 : 起步,Mycat源码阅读调试环境搭建
  9. 【Python】青少年蓝桥杯_每日一题_9.11_买鸡
  10. Failure while trying to resolve exception [org.springframework.http.converter.HttpMessageNotWritabl