树的子结构
来源:互联网 发布:thinking in java pdf 编辑:程序博客网 时间:2024/05/16 11:00
判断一棵树是否是另外一棵树的子树。
bool DoesTree1HasTree2(BTNode* pRoot1, BTNode* pRoot2){if (NULL == pRoot1)return false;if (NULL == pRoot2)return true;if (pRoot1->nData != pRoot2->nData)return false;// 注意这边是“&”,和下面HasSubTree最后的“||”的区别return DoesTree1HasTree2(pRoot1->pLeft, pRoot2->pLeft) && DoesTree1HasTree2(pRoot1->pLeft, pRoot2->pRight);}bool HasSubTree(BTNode* pRoot1, BTNode* pRoot2){if (NULL == pRoot1 && NULL == pRoot2) // 都为空return true;else if (NULL == pRoot1) // 只有pRoot1为空return false;else if (NULL == pRoot2) // 只有pRoot2为空return true;// 在pRoot1上找到pRoot2的根节点匹配的节点// 从这个节点开始依次比较if (pRoot1->nData == pRoot2->nData)return DoesTree1HasTree2(pRoot1, pRoot2);// 先在左子树,后右子树上查找。只要在其中一个找到即算找到return HasSubTree(pRoot1->pLeft, pRoot2) || HasSubTree(pRoot1->pRight, pRoot2);}
参考文献:
剑指offer
0 0
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- 树的子结构
- C++ 基础知识点 八 第9章 继承性与派生类
- 大话离散时间信号处理(一)
- swf 文件结构
- C++ 基础知识点 九 第10章 多态性与虚函数
- laravel5如何创建service provider和facade
- 树的子结构
- C/C++变量命名规则
- 回归分析:单变量线性回归
- /etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc 的区别
- 1044. 火星数字(20)
- hdu 2686
- VMware12的下载和安装
- Python - Quick Sort
- java.lang.ClassNotFoundException但是项目里明明已经导入了需要的类