判断一颗二叉树是是否是另一颗树的子树。
来源:互联网 发布:java语言程序设计培训 编辑:程序博客网 时间:2024/06/01 15:08
题目描述:.判断一颗二叉树是是否是另一颗树的子树。比如tree2是tree1的子树。
**难点分析:
要判断树2是否是树1中的节点,就需要遍历树1中节点与树2根结点比较。如果相同,则树1,树2同时遍历比较。两棵树进行两层遍历,对于技巧要求较高。
思路:
将过程分为两步:
1,通过递归,在树1中每次给出一个节点。
2,通过递归,在树2中判断该结点所在树是否与树2一样。
实现代码:
//节点信息:struct BinaryTreeNode{ BinaryTreeNode(const T& data) :m_data(data) , m_pLeft(nullptr) , m_pRight(nullptr) {} T m_data; BinaryTreeNode<T>* m_pLeft;//左孩子 BinaryTreeNode<T>* m_pRight;//右孩子};//判断t2是否是t1的子树bool BinaryTree<T>::_IsSubTree(Node* t1, Node* t2){ if (nullptr == t2) //子树t2可以为空(不管t1是否为空) return true; if (nullptr == t1) //此时子树t2不为空,t1为空表示没有子树 return false; if (_IsSameTree(t1, t2)) //判断t1、t2两颗树是否相同 return true; //走到这里,说明不同,则在t1的左右子树中判断 return (_IsSubTree(t1->m_pLeft, t2) || _IsSubTree(t1->m_pLeft, t2));}//判断两颗树中节点的值是否相同bool BinaryTree<T>::_IsSameTree(Node* t1, Node* t2){ if (nullptr == t1 && nullptr == t2) //都为空,相等。 return true; if (nullptr == t1 || nullptr == t2) //一个空,一个不空,不相等 return false; //此时两者都不为空, //判断节点值是否相同 if (t1->m_data == t2->m_data) //如果相同,则判断左右子树是否相同。 return (_IsSameTree(t1->m_pLeft, t2->m_pLeft) && _IsSameTree(t1->m_pRight, t2->m_pRight)); //两个节点不相同,则t1,t2不相等 return false;}
阅读全文
1 0
- 判断一颗二叉树是是否是另一颗树的子树。比如tree2是tree1的子树
- 判断一颗二叉树是是否是另一颗树的子树
- 判断一颗二叉树是是否是另一颗树的子树。
- 判断一颗二叉树是是否是另一颗树的子树
- 判断一颗二叉树是是否是另一颗树的子树。
- 判断一颗二叉树是否是另一颗树的子树
- 二叉树--判断一颗二叉树是是否是另一颗树的子树。比如tree2是tree1的子树。
- day14之判断一个节点是否在一棵二叉树中+判断一颗二叉树是是否是另一颗树的子树
- 【判断一个节点是否在一棵二叉树中】/【判断一颗二叉树是是否是另一颗树的子树】
- 判断一个节点是否在一棵二叉树中&判断一颗二叉树是是否是另一颗树的子树
- 判断一个节点是否在一棵二叉树中&&判断一颗二叉树是是否是另一颗树的子树
- 百度笔试题:判断一个二叉树是否是另一颗二叉树的子树
- 判断一棵二叉树是否是另一棵二叉树的子树
- 判断一个节点是否在一棵二叉树中和判断一颗二叉树是否是另一颗树的子树——题集(十二)
- 判断一棵二叉树是否是另一棵树的子树
- 判断一颗二叉树是不是另一颗的子结构(只是一部分,未必是子树)
- 判断一棵树是否是另一棵树的子树
- 判断一棵树是否是另一棵树的子树
- apache-comnons系列之commons-math3.6 学习笔记
- iOS 基本运算符~总结
- Unity_代码切换图片_046
- Summary
- 守护进程框架
- 判断一颗二叉树是是否是另一颗树的子树。
- 2017 Multi-University Training Contest
- spring中的spring.xml配置文件的头文件要是3.0.xsd,如果不是在不支持数组值注入
- Unity_NGUI案例制作_048
- CCF认证201312前三题:出现最多的数、ISBN编码、最大矩形
- 基于Spark的移动用户主要活动地点的挖掘算法实现以及JavaEE技术整合
- 【NOI2017】退役记——这是最坏的时代,也是最好的时代
- NYOJ 113-字符串替换
- Python的注释