判断一颗二叉树是是否是另一颗树的子树。
来源:互联网 发布:php走势图源码 编辑:程序博客网 时间:2024/06/05 23:58
什么样的情况下,某一棵树会成为另一棵树的子数呢?子树的根节点是某一棵树的某个节点,接下来的子节点也相同,则该树是另一棵树的子集。
首先找到与根节点相同的节点,在进行遍历,可使用递归法。
template<class T>struct TreeNode{ T _data; TreeNode<T>* _left; TreeNode<T>* _right; TreeNode(T x = T()) :_data(x) , _left(NULL) , _right(NULL) {}};template<class T>bool Check(TreeNode<T>* root1, TreeNode<T>* root2){ if (root1 == NULL && root2 == NULL)//都可以走到尾节点,那自然是一直相同 return true; if (root1 == NULL || root2 == NULL)//只有其中一个走到底,则对比后,至少一个节点不相同 return false; if (root1->_data != root2->_data) return false; return Check(root1->_left, root2->_left) && Check(root1->_right, root2->_right);}template<class T>bool IsSubset(TreeNode<T>* root1, TreeNode<T>* root2){ if (root1 == NULL) return false; if (root1->_data == root2->_data) { if (Check(root1, root2)) { return true; } } return IsSubset(root1->_left, root2) || IsSubset(root1->_right, root2);}
阅读全文
0 0
- 判断一颗二叉树是是否是另一颗树的子树。比如tree2是tree1的子树
- 判断一颗二叉树是是否是另一颗树的子树
- 判断一颗二叉树是是否是另一颗树的子树。
- 判断一颗二叉树是是否是另一颗树的子树
- 判断一颗二叉树是是否是另一颗树的子树。
- 判断一颗二叉树是否是另一颗树的子树
- 二叉树--判断一颗二叉树是是否是另一颗树的子树。比如tree2是tree1的子树。
- day14之判断一个节点是否在一棵二叉树中+判断一颗二叉树是是否是另一颗树的子树
- 【判断一个节点是否在一棵二叉树中】/【判断一颗二叉树是是否是另一颗树的子树】
- 判断一个节点是否在一棵二叉树中&判断一颗二叉树是是否是另一颗树的子树
- 判断一个节点是否在一棵二叉树中&&判断一颗二叉树是是否是另一颗树的子树
- 百度笔试题:判断一个二叉树是否是另一颗二叉树的子树
- 判断一棵二叉树是否是另一棵二叉树的子树
- 判断一个节点是否在一棵二叉树中和判断一颗二叉树是否是另一颗树的子树——题集(十二)
- 判断一棵二叉树是否是另一棵树的子树
- 判断一颗二叉树是不是另一颗的子结构(只是一部分,未必是子树)
- 判断一棵树是否是另一棵树的子树
- 判断一棵树是否是另一棵树的子树
- 磁盘配额
- spring data jpa 分页查询
- Python多线程(3)——Queue模块
- 2017 百度之星资格赛1002 度度熊的王国战略【图+贪心】
- Google算法题:目标和
- 判断一颗二叉树是是否是另一颗树的子树。
- UVA
- 《Win32多线程程序设计》线程初识
- Servlet过滤器示例及分析----图片保护过滤器
- HDU 1159 Common Subsequence (最长公共子序列)
- Oracle12c CDB架构图
- C++ const使用方法
- Windows上jmeter 修改charset的方法
- VPS搭建与IPv6使用教程