【力扣】另一棵树的子树
572. 另一棵树的子树 - 力扣(LeetCode)
题目:
给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。
二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。
思路:
用先序遍历,当在树中遇到与subRoot值相等的酒店时,判断是否为同一颗树,如果是就则subRoot是另一棵树的子树
代码:
bool isSameTree(struct TreeNode* root, struct TreeNode* subRoot)
{if(root==NULL && subRoot == NULL){return true;}if(root==NULL){return false;}if(subRoot == NULL){return false;}if(root->val != subRoot->val){return false;}bool ret1 = isSameTree(root->left,subRoot->left);bool ret2 = isSameTree(root->right,subRoot->right);return ret1&&ret2;}
bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot)
{ if(root == NULL && subRoot == NULL){return true;}if(root == NULL){return false;}if(root->val == subRoot->val)//值相等时看是否为同一个子树{if(isSameTree(root,subRoot)){return true;}}bool ret1 = isSubtree(root->left,subRoot);bool ret2 = isSubtree(root->right,subRoot);return ret1||ret2;}
【力扣】另一棵树的子树相关推荐
- day23【代码随想录】翻转二叉树、对称二叉树、相同的树、另一棵树的子树、完全二叉树的结点个数
文章目录 前言 一.翻转二叉树(力扣226) 1.递归法 1.使用前序遍历 2.使用后序遍历 2.迭代法 1.层序遍历 二.对称二叉树(力扣101) 三.相同的树(力扣100) 四.另一棵树的子树(力 ...
- 14.相同的树另一棵树的子树检查子树二叉树中的列表(教你们使用相同的套路快速解决这四道题)
一.相同的树 这道题是开胃菜的开始,使用递归进行解决 递归三部曲: 确定递归函数的参数和返回值 因为我们要比较的是两棵树是否相等,所以参数分别是两棵树的根节点,返回值为boolean类型,即两棵树是否 ...
- LeetCode Algorithm 572. 另一棵树的子树
572. 另一棵树的子树 Ideas 首先想到的就是递归判断两棵树的每一个节点是否相等,那么就需要将subRoot跟root的每一个节点构成的子树判断是否相同. 递归判断相等的逻辑比较简单,首先当前两 ...
- 另一棵树的子树(LeetCode)
给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 true :否则,返回 false . 二叉树 tree 的一 ...
- 572. 另一棵树的子树————简单
目录 题目 解题思路 Code 运行结果 题目 572. 另一棵树的子树 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果 ...
- 判断一棵树是否是另一棵树的子树(Java实现)
前面一篇文章介绍了如何判断两棵树相等,思路就是遍历每个节点,然后判断是否均相等,需要用递归来实现.如果需要判断一棵树是另一棵树的子树,该怎么办呢?我们需要借助前面的思路,需要先判断两棵树相等,这里就是 ...
- LeetCode另一棵树的子树
572. 另一棵树的子树 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 true :否则,返回 false ...
- 二叉树 判断一棵树是否是另一棵树的子树
题目:判断判断一棵树是否是另一棵树的子树,子树的意思是只要包含了一个结点,就得包含这个结点下的所有节点.意思就是二叉树结点的值也要相等 如下图2就是1的子树 如果将第二颗树根节点右孩子data改为2 ...
- 572. 另一棵树的子树
572. 另一棵树的子树 一.题目 二.参考代码 一.题目 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 t ...
最新文章
- python 把2个列表或者2个元组转成字典
- 我收到的最佳编程建议
- 零基础Python培训入门 教你认识下这些基础内容
- python算法与数据结构-归并排序算法
- 《四世同堂》金句摘抄(九)
- static关键字 void和void指针 函数指针
- 09. 用两个栈实现队列
- 年薪35W+ 的程序员看过来!百万架构师第3期招生
- ios开发之商城类软件 - 框架构思
- C语言两位八段LED数码管的,简单共阳极数码管电路图大全(五款led数码管电路图详解)...
- java初级项目 小说_webmagic项目实战(爬小说网站)
- 上海java软件工程师的工资待遇
- 嵌入式电子钢琴游戏开发设计
- 数据仓库(三)之架构篇
- 投简历的格式(第一分简历)
- 加速度计和陀螺仪原理
- 三极管 vs MOS管 | PMOS与NMOS
- S7-200SMART PLC中书签和交叉引用的具体使用方法示例
- ThinkPHP55.1验证码的使用及点击刷新
- 非递归遍历二叉树实现和理解
热门文章
- 知道这5个隐藏资源网站的人非常少,难怪总是找不到资源!
- 计算机管理里没有guest,w10共享时没有guest怎么设置_w10共享时看不到guest如何恢复...
- 东方木网吧上网遇到难题:网吧浏览器总是自动刷新
- 【开发工具】Windows触摸板操作
- java,给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。
- 2008.06.01 读华为前执行副总裁李玉琢的《我与商业领袖的合作与冲突》有感(二)
- integral函数Opencv源码理解-leetcode动态规划的使用场景
- java怎么延时_java怎么实现延时
- android开发实例便签,Android便签应用
- 读后感___之大师德鲁克