程序7——一棵二叉树是不是另外一棵二叉树的子结构
2015-12-16 10:25
239 查看
树的子结构是指:在二叉树A中存在二叉树B,也是就是二叉树B是二叉树A的子结构。如下图所示:
基本思路:
首先在二叉树A中查找与二叉树B的根节点的值相同的节点,然后再一次判断该节点的左右孩子节点是不是跟二叉树B的左右孩子节点相同。
代码如下:
基本思路:
首先在二叉树A中查找与二叉树B的根节点的值相同的节点,然后再一次判断该节点的左右孩子节点是不是跟二叉树B的左右孩子节点相同。
代码如下:
boolean hasSubTree(tree *A, tree *B) { if (A == B) { return true; } if (B == null) { return true; } if (A == null) { return false; } if (A->data != B->data) { return false; } boolean result = match(A, B); if (result) { return true; } return hasSubTree(A->lchild, B) || hasSubTree(A->rchild, B); } boolean match(tree *A, tree *B) { if (A == B) { return true; } if (B == null) { return true; } if (A == null) { return false; } if (A->data != B->data) { return false; } return match(A->lchild, B->lchild) && match(A->rchild, B->rchild); }
相关文章推荐
- eclipse报错: Unhandled event loop exception No more handles
- LeetCode(235) Lowest Common Ancestor of a Binary Search Tree解题报告
- 定制Linux内核 发挥Linux潜能
- iOS 开发之 runtime运行时模拟成员变量
- toString方法
- R语言学习
- 图像矫正----认识畸变(Distortion)
- eclipse构建及运行maven web项目
- 异常解决:util.NativeCodeLoader: Unable to load native-hadoop library for your platform
- 动态规划之0-1背包问题
- C#拓展方法
- SharePoint Permission Analyzer 权限分析仪
- ios集成语音朗读功能
- 基于JavaScript获取鼠标位置的各种方法
- 线程池的理解
- Webstorm的快捷键
- Linux的inode的理解
- 抽象概括能力
- QDataTime的一些使用概述
- android源码分析(ZZ)