判断子树问题
来源:互联网 发布:lewin'gene知乎 编辑:程序博客网 时间:2024/06/05 05:49
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
思路:判断A,B两个节点为根的树存在子树关系,如果不存在则判断以A的左子树或者右子树为根的树和B这颗树是否存在子树关系。
/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution {public: bool HasSubtree(TreeNode* pRoot1, TreeNode* pRoot2) { if(pRoot2==NULL||pRoot1==NULL) return false; return isSubTree(pRoot1, pRoot2)||isSubTree(pRoot1->left,pRoot2)||isSubTree(pRoot1->right,pRoot2);; } bool isSubTree(TreeNode* pRoot1, TreeNode* pRoot2){ if(pRoot1==NULL&&pRoot2!=NULL)//节点1为空但是节点2不为空说明未遍历完 return false; if(pRoot2==NULL)//节点2为空说明遍历完成,返回true return true; if(pRoot1->val==pRoot2->val) return isSubTree(pRoot1->left,pRoot2->left)&&isSubTree(pRoot1->right,pRoot2->right); else return isSubTree(pRoot1->left,pRoot2)||isSubTree(pRoot1->right,pRoot2); }};
阅读全文
0 0
- 判断子树问题
- 二叉树判断子树问题
- 二叉树判断子树问题
- 子树判断问题(百度笔试题)
- 子树判断
- 子树判断
- 子树判断
- 判断子树
- 4-08:判断子树
- 二叉树子树判断
- 判断是否为子树
- 判断是否子树
- 4.7-判断是否为子树
- 子树的包含问题
- HDU60 子树路径问题
- 在线编程--相同子树问题
- 最大二叉搜索子树问题
- 树链剖分HLD解决子树问题
- Php7的这些新特性你掌握了吗?
- windows搭建python开发环境并操作MySQL
- Flex 布局教程:实例篇
- C语言之指针专题四:指针做函数参数
- pandas库的数据类型运算
- 判断子树问题
- 10-7&&10-8NOIP模拟赛总结
- 关于列表的扁平化
- 习题3第五题:分析习题2第四题所述的患者监护系统。试用实体联系图描绘本系统的数据对象,画出本系统的顶层IPO图。
- java产生随机数且猜数字游戏(源码)
- python和C语言混编的几种方式
- spring boot 整合 Jersey
- Qt 学习之路 2(81):QML元素布局
- python 股票数据爬取(两种方法)