面试题18 树的子结构
2016-04-04 22:21
483 查看
题目描述
输入两颗二叉树A,B,判断B是不是A的子结构。/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: bool DoesTree1hasTree2(TreeNode* pRoot1, TreeNode* pRoot2){ if (pRoot2 == NULL){ return true; } if (pRoot1 == NULL){ return false; } if (pRoot1->val != pRoot2->val){ return false; } return DoesTree1hasTree2(pRoot1->left, pRoot2->left) && DoesTree1hasTree2(pRoot1->right, pRoot2->right); } bool HasSubtree(TreeNode* pRootA, TreeNode* pRootB) { if (pRootA == NULL || pRootB == NULL) return false; return DoesTree1hasTree2(pRootA, pRootB) || HasSubtree(pRootA->left, pRootB) || HasSubtree(pRootA->right, pRootB); } };
相关文章推荐
- 程序员有趣的面试智力题
- 黑马程序员-学习笔记03
- 黑马程序员-学习笔记02
- 黑马程序员,学习笔记01
- 成为顶尖自由职业者必备的7个软技能之一:沟通(转)
- java多线程--几个多线程面试题小结
- 我的求职之路:9个offer,12家公司,35场面试,最终谷歌
- [置顶] 整理最全的Android开发工程师面试题,面试题详解。java、Android程序员
- 剑指offer面试题之和为S的连续正数序列
- 面试题15 链表中倒数第k个结点
- 面试题14 调整数组顺序使奇数位于偶数前面
- 七个对我最重要的职业建议(译文)
- CPU处理多任务——中断与轮询方式比较
- 面试题13 在O(1)时间删除链表结点
- 面试题12 打印1到最大的N位数
- [面试] Java高级软件工程师面试考纲(转)
- 根据《程序员竞争力矩阵》的自我评价
- 职业发展之面试技巧
- 剑指offer面试题 求二叉数的深度
- 面试题11 数值的整数次方