剑指offer之【树的子结构】
题目:
树的子结构
链接:
https://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88?tpId=13&tqId=11170&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
题目描述:
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
思路:
分为两步:
第一步:用HasSubtree 搜索与子树根节点值相同的点(递归查找),如果找到则进行第二步。
第二步:用isSubtree搜索子树是否是大树的子树,
代码:
1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) { 8 } 9 };*/ 10 class Solution{ 11 public: 12 bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2){ 13 bool result = false; 14 if(pRoot2 == nullptr) 15 return false; 16 if(pRoot1 == nullptr) 17 return false; 18 if(pRoot1->val == pRoot2->val){ 19 result = isSubtree(pRoot1,pRoot2); 20 } 21 if(!result){ 22 result = HasSubtree(pRoot1->left,pRoot2)|| HasSubtree(pRoot1->right, pRoot2); 23 } 24 return result; 25 } 26 bool isSubtree(TreeNode* root1, TreeNode* root2){ 27 if(root2 == nullptr) 28 return true; 29 if(root1 == nullptr) 30 return false; 31 if(root1->val != root2->val) 32 return false; 33 else 34 return isSubtree(root1->left,root2->left)&& isSubtree(root1->right,root2->right); 35 } 36 };
转载于:https://www.cnblogs.com/wangshujing/p/6935462.html
剑指offer之【树的子结构】相关推荐
- 左神算法:判断 t1 树是否包含t2 树全部的拓扑结构(剑指 Offer 26. 树的子结构,Java版)
本题来自左神<程序员代码面试指南>"判断 t1 树是否包含t2 树全部的拓扑结构"题目. 题目 剑指 Offer 26. 树的子结构 给定彼此独立的两棵树头节点分别为 ...
- 【LeetCode】剑指 Offer 26. 树的子结构
[LeetCode]剑指 Offer 26. 树的子结构 文章目录 [LeetCode]剑指 Offer 26. 树的子结构 package offer;//定义树节点 class TreeNode{ ...
- 剑指offer:树的子结构
题目 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 解题思路 暴力做法 取出树A/B的前序.中序: 判断这两个数组是否A都包含B,是则true. 前序和中 ...
- 《剑指offer》-- 树的子结构、二叉树的镜像、二叉树的深度、平衡二叉树
一. 树的子结构: 1.题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构. 2.解题思路: 这个题比较简单,利用递归的方式就可以判断B是不是A树的子结构 ...
- 【无取巧解法,易于理解!】剑指 Offer 26. 树的子结构
看题解时,很多大牛用很少的代码就完成了AC,但可能看了很多遍也看不懂,因此萌生了写一种最"笨"最完整的代码的想法,这样大家可以通过我的代码入门,看懂了再去挑战大牛们的简洁解法. 输 ...
- 剑指offer之树的子结构
1 题目 输入两颗二叉树A和B,判断B是不是A的子结构(B树是A树的子结构) 比如: 2 树A 3 5 树B 5 ...
- 剑指offer——判断树的子结构
题目描述: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) https://www.nowcoder.com/practice/6e196c44c7004d ...
- 剑指offer——26.树的子结构(不太熟)
题目: 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) 知识点: 无 注意: 注意想法的递归实现(好好琢磨一下,不然可能会忘!) 代码实现: 具体实现分两步 ...
- LeetCode——剑指 Offer 26. 树的子结构
一.题目 输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A: 3/ \4 5/ \1 2 ...
- 剑指offer 26 树的子结构
输入两棵二叉树A和B,判断B是不是A的子结构.(约定空树不是任意一个树的子结构) B是A的子结构, 即 A中有出现和B相同的结构和节点值. 例如: 给定的树 A: 3 / \ 4 5 / 1 2 给定 ...
最新文章
- 自动化办公 Python 操控 Word
- JVM的标配参数和X参数
- 如何实现Spark on Kubernetes?
- Unity动画系统经验谈:换装系统与骨骼调节
- 深入sql server中的事务
- 应用程序错误 应用程序发生异常w3wp.exe
- 舞台音效控制软件_QLab Pro 4.3.2 优秀的舞台音乐控制软件
- 永中word页码怎么从第二页开始_Word文档”双面打印“全攻略,解决打印难题!...
- CarbonData源码浅析一:Create Table
- Mysql数据表和表数据复制
- 有度即时通统一工作门户助力政企单位开启数字化办公新模式
- java 设计模式 常用21种
- 失败并不可怕,可怕的是害怕失败
- 医疗器械行业数据分析必备软件--全球可查
- CodeForces 332B Maximum Absurdity(线段树单点更新)
- Java植物名录程序_【人工智能】动物、植物、车型、菜品、LOGO识别示例代码
- Android P非SDK接口限制
- 网红茶饮亦难逃营销之困,喜茶们要怎么破局?
- 合作——没有人能脱离团队而存在
- Quick Bi经验总结