题解 | #判断t1树中是否有与t2树完全相同的子树#
判断t1树中是否有与t2树完全相同的子树
http://www.nowcoder.com/practice/4eaccec5ee8f4fe8a4309463b807a542
/**
* struct TreeNode {
* int val;
* struct TreeNode *left;
* struct TreeNode *right;
* };
*/
class Solution {
public:
/**
*
* @param root1 TreeNode类
* @param root2 TreeNode类
* @return bool布尔型
*/
//iscontains是总函数,判断是否有子树相同(不断递归)
//isEqual是用来判断本树和root2是否相同的
bool isContains(TreeNode* root1, TreeNode* root2) {
if(root1 == nullptr && root2==nullptr) return true;
if(root1 == nullptr || root2==nullptr) return false;
return isEqual(root1, root2) ||isContains(root1->left,root2)
||isContains(root1->right,root2);
}
bool isEqual(TreeNode* root1,TreeNode* root2){
if(root1 == nullptr && root2==nullptr) return true;
if(root1 == nullptr || root2==nullptr) return false;
if(root1->val!=root2->val) return false;
return isEqual(root1->left, root2->left)&&isEqual(root1->right,root2->right);
}
};