剑指Offer系列-面试题18:树的子结构
来源:互联网 发布:淘宝 处罚考试 编辑:程序博客网 时间:2024/06/09 12:24
题目:输入两颗二叉树A和B,判断B是不是A的子结构。二叉树结点的定义如下:
struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;};
思路:需要多次判断指针为NULL时的情况,这也是递归结束的标识。
代码:
bool DoesTree1HaveTree2(BinaryTreeNode* pRoot1, BinaryTreeNode* pRoot2){ if(pRoot2 == NULL) return true; if(pRoot1 == NULL) return false; if(pRoot1->m_nValue != pRoot2->m_nValue) return false; return DoesTree1HaveTree2(pRoot1->m_pLeft, pRoot2->m_pLeft) && DoesTree1HaveTree2(pRoot1->m_pRight, pRoot2->m_pRight);}bool HasSubtree(BinaryTreeNode* pRoot1, BinaryTreeNode* pRoot2){ bool result = false; if(pRoot1 != NULL && pRoot2!= NULL) { if(pRoot1->m_nValue == pRoot2->m_nValue) result = DoesTree1HaveTree2(pRoot1, pRoot2); if(!result) result = HasSubtree(pRoot1->m_pLeft, pRoot2); if(!result) result = HasSubtree(pRoot1->m_pRight, pRoot2); } return result;}
0 0
- 剑指Offer系列-面试题18:树的子结构
- [剑指offer][面试题18]树的子结构
- 【剑指offer】面试题18:树的子结构
- 剑指offer 面试题18 树的子结构
- 剑指Offer:面试题18 树的子结构
- 《剑指Offer》面试题18:树的子结构
- 剑指offer 面试题18—树的子结构
- 【剑指Offer学习】【面试题18 :树的子结构】
- 剑指offer面试题18-树的子结构
- 剑指offer-面试题18:树的子结构
- 剑指offer之面试题18:树的子结构
- 剑指offer之面试题18树的子结构
- 剑指Offer----面试题18:树的子结构
- 剑指offer-面试题18:树的子结构
- 剑指offer面试题18:树的子结构
- 剑指offer面试题18:树的子结构
- 剑指offer面试题18:树的子结构
- 剑指offer--面试题18:树的子结构
- xprintf format string
- 集成微信SDK出现libc++abi.dylib: terminating with uncaught exception of type NSException,微信支付SDKDEMO运行编译报错
- vue.js入门学习笔记整理
- ccf试题 消除类游戏
- 计划太多,做得太少
- 剑指Offer系列-面试题18:树的子结构
- EventBus3的简单使用
- Hello Quartz (第三部分)
- 基于spark的精准推荐系统
- POJ - 1936 All in All解题报告
- 文人气质
- Android Instant APP
- 软件测试理论知识总结
- centos6.5安装部署nginx