### C++ program to check if two trees are identical using recursion

Description:
This Program is to check if two trees are identical using recursion.

For Example:
Input :
The Elements of tree1 : 1 , 2, 3, 4, 5
The Elements of tree2 : 1 , 2, 3, 4, 5
Output :
Both tree are identical.

Program :
//C++ program to check if two trees are identical using recursion
#include <bits/stdc++.h>
using namespace std;

// tree node
struct Node
{

int data;
Node *left, *right;
};

// returns a new tree Node
Node* newNode(int data)
{
Node* temp =
new Node();
temp->data = data;
temp->left = temp->right =
NULL;
return temp;
}
//return true if they are identical
bool Trees(struct Node* root1, struct Node* root2)
{
// if both empty
if (root1==NULL && root2==NULL)
return true;

// if both are non empty then comparing them
if (root1!=NULL && root2!=NULL)
{
return
(
root1->data == root2->data &&
Trees(root1->left, root2->left) &&
Trees(root1->right, root2->right)
);
}

//if one empty, one not -> false
return false;
}
int main()
{
struct Node *root1 = newNode(1);
struct Node *root2 = newNode(1);
root1->left = newNode(
2);
root1->right = newNode(
3);
root1->left->left = newNode(
4);
root1->left->right = newNode(
5);

root2->left = newNode(
2);
root2->right = newNode(
3);
root2->left->left = newNode(
4);
root2->left->right = newNode(
5);

if(Trees(root1, root2))
cout<<"Both tree are identical.";
else
cout<<"Trees are not identical.";

getchar();
return 0;
}

#### More Articles of Mandeep Sheoran:

Name Views Likes
C++ program to insert an element into binary tree 6240 19
C++ program to find an element into binary tree 772 16
C++ std::is_void 572 15
C++ program to find the closest element in binary search tree 916 19
C++ program to replace every element with the least greater element on its right 573 12
C++ program to delete an element into binary tree 785 24
C++ program to find maximum element between two nodes of binary search tree 700 20
C++ std::remove_copy_if with std::vectors 547 11
C++ program to print duplicate elements from the binary search tree 2937 15
C++ program to find depth of the deepest odd level node in binary tree 575 23
C++ program to remove duplicate elements from the binary search tree 1555 20
C++ std::rotate_copy with std::vector 530 14
C++ std::copy_n with std::vector 638 22
C++ std::copy_if with std::vector 1552 18
C++ program to print all the elements of binary search tree 7105 22
C++ std::reverse_copy with std::list 598 18
C++ program to print all the elements of binary tree 1158 18
C++ program to print all full nodes in a binary tree 572 25
C++ program to find sink odd nodes in binary tree 580 15
C++ std::is_copy_assignable 596 22
C++ program to check whether a binary tree is a full binary tree or not using recursion 609 19
C++ std::is_copy_constructible 618 27
C++ program to delete an element into binary search tree 2873 18
C++ std::reverse_copy with std::vector 487 18
C++ std::rotate with std::vector 641 15
C++ program to check for symmetric binary tree using recursion 599 25
C++ program to maximum sum from a tree with adjacent levels not allowed 552 15
C++ std::copy_n with std::list 595 21
C++ program to check if two trees are identical using recursion 546 15
C++ std::copy_n 874 21
C++ std::copy_if with std::list 998 19
C++ program to print the nodes at odd levels of a tree 562 13
C++ program to find lowest common ancestor in a binary tree 689 29
C++ program to find depth of the deepest odd level leaf node 494 13
C++ std::remove_copy_if with std::list 666 20
C++ program to add all greater values to every node in a given binary search tree 638 15