572. 另一棵树的子树
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. 另一棵树的子树相关推荐
- LeetCode Algorithm 572. 另一棵树的子树
572. 另一棵树的子树 Ideas 首先想到的就是递归判断两棵树的每一个节点是否相等,那么就需要将subRoot跟root的每一个节点构成的子树判断是否相同. 递归判断相等的逻辑比较简单,首先当前两 ...
- 572. 另一棵树的子树————简单
目录 题目 解题思路 Code 运行结果 题目 572. 另一棵树的子树 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果 ...
- 【刷题】572. 另一棵树的子树
572. 另一棵树的子树 一.题目描述 二.示例 三.实现 572. 另一棵树的子树 一.题目描述 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相 ...
- 572 另一棵树的子树
题目 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 true :否则,返回 false . 二叉树 tree ...
- 力扣572. 另一棵树的子树(JavaScript)
//找到相等的头节点 var isSubtree = function(s,t) {if(t==null){return true}if(s==null){return false}return is ...
- 572.另一棵树的子树
与T100很像 class Solution {public boolean isSubtree(TreeNode root, TreeNode subRoot) {if(root == null) ...
- LeetCode另一棵树的子树
572. 另一棵树的子树 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 true :否则,返回 false ...
- 【力扣】另一棵树的子树
572. 另一棵树的子树 - 力扣(LeetCode) 题目: 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 ...
- day23【代码随想录】翻转二叉树、对称二叉树、相同的树、另一棵树的子树、完全二叉树的结点个数
文章目录 前言 一.翻转二叉树(力扣226) 1.递归法 1.使用前序遍历 2.使用后序遍历 2.迭代法 1.层序遍历 二.对称二叉树(力扣101) 三.相同的树(力扣100) 四.另一棵树的子树(力 ...
最新文章
- three.ar.js_我们如何通过AR.js使产品吉祥物栩栩如生
- linux服务器优化1.0版
- .NET 时间格式 ----------摘自MSDN
- 关于在头文件中定义变量
- mysql 堆表_Mysql聚集索引和非聚集索引(堆组织表和索引组织表)
- zookeeper集群节点热扩容和迁移详解
- php请求图片,PHP - 发送GET请求并获取图片作为回报
- mysql jdbc 连接池配置
- java正则表达 替换_java正则表达式替换
- 【步步到位】mysql安装教程 8.0.26
- 2050年这些职业将逐渐被AI(人工智能)取代
- windows如何安装SVN
- SVN_处理文件误删恢复
- C语言if( x)的意思,c语言中if(x)是什么意思?_后端开发
- 在Fragment中使用Listview
- 208. Implement Trie (Prefix Tree)(Leetcode每日一题-2021.04.14)
- corsswalk的研究和使用(一)
- I will keep my ears open 生活口语:到此为止请勿多言
- 【Dart 教程系列第 21 篇】Dart 之 firstWhere 返回数组中第一个满足条件的元素
- numpy 向量/矩阵的乘法