#include<iostream>
using namespace std;
typedef struct treenode
{
int data;
treenode* left;
treenode* right;
}node, *pnode;
bool doesTreeHaveTree(pnode root1, pnode root2)
{
if (root2 == NULL)
return true;
if (root1 == NULL)
return false;
if (root1->data != root2->data)
return false;
return doesTreeHaveTree(root1->left, root2->left) && doesTreeHaveTree(root1->right, root2->right);
}
bool hasTree(pnode root1, pnode root2)
{
bool result = false;
if (root1 != NULL && root2 != NULL)
{
if (root1->data == root2->data)
result = doesTreeHaveTree(root1, root2);
if (!result)
result = hasTree(root1->left, root2);
if (!result)
result = hasTree(root1->right, root2);
}
return result;
}