剑指offer 编程题(16):判断是否子树
2017-12-18 14:51
369 查看
题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)/* 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) return false; if (!pRoot1) return false; return (dfs(pRoot1,pRoot2) || HasSubtree(pRoot1->left,pRoot2) || HasSubtree(pRoot1->right,pRoot2)); } private: bool dfs(TreeNode* pRoot1, TreeNode* pRoot2) { if (!pRoot2) return true; if (!pRoot1) return false; if (pRoot1->val == pRoot2->val) return (dfs(pRoot1->left,pRoot2->left)&&dfs(pRoot1->ri 4000 ght,pRoot2->right)); return false; } };
相关文章推荐
- 算法编程题-判断一颗树中是否有与另一棵树拓扑结构完全相同的子树
- 判断一棵树是否是另一棵树的子树 java实现
- 判断B树是否是A的子树
- 剑指Offer16 判断子树
- 编程题----怎么判断两个浮点数相加是否等于另一个浮点数?
- 位运算——判断整数a是否可被2的幂(2、4、8、16……)整除?
- 判断一棵二叉树是否是二叉树的子树
- 《剑指offer》:[22]如何判断一个序列是否为栈的弹出序列
- 二叉树问题---判断t1树中是否有与t2树拓扑结构完全相同的子树
- 判断一颗二叉树是是否是另一颗树的子树。
- 判断一个树是否为另一个树的子树
- (PHP实现剑指offer)在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- 用一个表达式而不是一个循环语句 判断一个数X是否是2的N次方(2,4,8,16......)
- 南邮编程在线编程题二十二:判断矩阵是否对称
- Introduction to Java Programming编程题3.27<判断点是否在三角形内>
- 微软亚洲研究院面试编程题之判断两个链表是否相交
- day14之判断一个节点是否在一棵二叉树中+判断一颗二叉树是是否是另一颗树的子树
- 二叉树--判断一颗二叉树是是否是另一颗树的子树。比如tree2是tree1的子树。
- 编程题:输入n个数,判断其中是否有k个数的和等于m
- [互联网面试笔试汇总C/C++-16] 判断一棵二叉树是否是平衡二叉树