Google Interview Question
SDE1sCountry: United States
boolean isSimilar(TreeNode root1, TreeNode root2){
if( root1 == null && root2 == null )
return true;
else if( root1 == null || root2 == null )
return false;
if( (root1.data == root2.data)
&& ( ( isSimilar(root1.left, root2.left) && isSimilar(root1.right, root2.right) )
|| ( isSimilar(root1.left, root2.right) && isSimilar(root1.right, root2.left )) )){
return true;
}
return false;
}
boolean isSimilar(TreeNode root1, TreeNode root2){
if( root1 == null && root2 == null )
return true;
else if( root1 == null || root2 == null )
return false;
if( (root1.data == root2.data)
&& ( ( isSimilar(root1.left, root2.left) && isSimilar(root1.right, root2.right) )
|| ( isSimilar(root1.left, root2.right) && isSimilar(root1.right, root2.left )) )){
return true;
}
return false;
}
bool Similar(Node *n1, Node *n2)
{
if (!n1 ||
!n2)
{
return n1 || n2 ? false : true;
}
if (n1->val_ != n2->val_) {
return false;
}
if (Similar(n1->left_, n2->left_) &&
Similar(n1->right_, n2->right_))
{
return true;
}
if (Similar(n1->left_, n2->right_) &&
Similar(n1->right_, n2->left_))
{
return true;
}
return false;
}
- Anonymous December 21, 2017