572. 另一棵树的子树

  • 一、题目
  • 二、参考代码

一、题目

给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。

二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。


二、参考代码


/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {public boolean isSubtree(TreeNode root, TreeNode subRoot) {if(root == null){return subRoot == null;}// 判断以 root 为根的二叉树是否和 subRoot 相同if(isSameTree(root,subRoot)){return true;}// 去左右子树中判断是否有和 subRoot 相同的子树return isSubtree(root.left,subRoot) || isSubtree(root.right,subRoot);// 我们只需要找到一个就可以了}public boolean isSameTree(TreeNode p, TreeNode q) {// 判断一对节点是否相同if(p == null && q == null){return true;}if(p == null || q == null){return false;  // 两个不可能同时为空,因为前面一个if已经拦截了}if(p.val != q.val){return false;}// 判断其他节点是否相同return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);}
}

572. 另一棵树的子树相关推荐

  1. LeetCode Algorithm 572. 另一棵树的子树

    572. 另一棵树的子树 Ideas 首先想到的就是递归判断两棵树的每一个节点是否相等,那么就需要将subRoot跟root的每一个节点构成的子树判断是否相同. 递归判断相等的逻辑比较简单,首先当前两 ...

  2. 572. 另一棵树的子树————简单

    目录 题目 解题思路 Code 运行结果 题目 572. 另一棵树的子树 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果 ...

  3. 【刷题】572. 另一棵树的子树

    572. 另一棵树的子树 一.题目描述 二.示例 三.实现 572. 另一棵树的子树 一.题目描述 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相 ...

  4. 572 另一棵树的子树

    题目 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 true :否则,返回 false . 二叉树 tree ...

  5. 力扣572. 另一棵树的子树(JavaScript)

    //找到相等的头节点 var isSubtree = function(s,t) {if(t==null){return true}if(s==null){return false}return is ...

  6. 572.另一棵树的子树

    与T100很像 class Solution {public boolean isSubtree(TreeNode root, TreeNode subRoot) {if(root == null) ...

  7. LeetCode另一棵树的子树

    572. 另一棵树的子树 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 true :否则,返回 false  ...

  8. 【力扣】另一棵树的子树

    572. 另一棵树的子树 - 力扣(LeetCode) 题目: 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 ...

  9. day23【代码随想录】翻转二叉树、对称二叉树、相同的树、另一棵树的子树、完全二叉树的结点个数

    文章目录 前言 一.翻转二叉树(力扣226) 1.递归法 1.使用前序遍历 2.使用后序遍历 2.迭代法 1.层序遍历 二.对称二叉树(力扣101) 三.相同的树(力扣100) 四.另一棵树的子树(力 ...

最新文章

  1. three.ar.js_我们如何通过AR.js使产品吉祥物栩栩如生
  2. linux服务器优化1.0版
  3. .NET 时间格式 ----------摘自MSDN
  4. 关于在头文件中定义变量
  5. mysql 堆表_Mysql聚集索引和非聚集索引(堆组织表和索引组织表)
  6. zookeeper集群节点热扩容和迁移详解
  7. php请求图片,PHP - 发送GET请求并获取图片作为回报
  8. mysql jdbc 连接池配置
  9. java正则表达 替换_java正则表达式替换
  10. 【步步到位】mysql安装教程 8.0.26
  11. 2050年这些职业将逐渐被AI(人工智能)取代
  12. windows如何安装SVN
  13. SVN_处理文件误删恢复
  14. C语言if( x)的意思,c语言中if(x)是什么意思?_后端开发
  15. 在Fragment中使用Listview
  16. 208. Implement Trie (Prefix Tree)(Leetcode每日一题-2021.04.14)
  17. corsswalk的研究和使用(一)
  18. I will keep my ears open 生活口语:到此为止请勿多言
  19. 【Dart 教程系列第 21 篇】Dart 之 firstWhere 返回数组中第一个满足条件的元素
  20. numpy 向量/矩阵的乘法

热门文章

  1. 如何用化学软件绘制苯环
  2. 第二届无线通信AI大赛参赛总结
  3. 百度联盟广告代码php,js 投放联盟广告代码可异步加载百度联盟广告
  4. banq修复_banq手机u盘怎么用u盘视频文件有锁
  5. ArchLinux + DDE 安装教程
  6. java中有地址吗_java web开发中各类地址的写法
  7. CPaintDC和CDC
  8. Jenkins 第一次任务构建时提示:ERROR: Timeout after 10 minutes
  9. 计算机学院运动会解说词,学院运动会解说词
  10. 天数换算月份_农历的月份计算天数的方法,农历润月怎么看?