Identical Binary Trees Iterative approach


#1

int Solution::isSameTree(TreeNode* A, TreeNode* B)
{
if(!A && !B)
return 1;
else if(!A||!B)
return 0;
queue<TreeNode*> q1,q2;
q1.push(A);
q2.push(B);
while(!q1.empty() && !q2.empty())
{
TreeNode* ta = q1.front();
q1.pop();
TreeNode* tb = q2.front();
q2.pop();
if(ta->val!=tb->val)
return 0;
if(ta->left && tb->left)
{
q1.push(ta->left);
q2.push(tb->left);
}
else if(ta->left|| tb->left)
return 0;
if(ta->right && tb->right)
{
q1.push(ta->right);
q2.push(tb->right);
}
else if(ta->right|| tb->right)
return 0;
}
if(q1.empty() && q2.empty())
return 1;
else
return 0;
}