题目:请实现两颗树是否相等的比较,相等返回0,否则返回其他值。
注:A、B两树相等当且仅当RootA->val==RootB->val,而且A和B的左右子树对应相等或者互换后相等。
用递归实现代码:
bool Compare(TreeNode* RootA, TreeNode* RootB)
{
bool is_TreeA_NULL=(RootA==nullptr);
bool is_TreeB_NULL=(RootB==nullptr);
if(is_TreeA_NULL != is_TreeB_NULL)
return false;
if(is_TreeA_NULL && is_TreeB_NULL)
return true;
if(RootA->val != RootB->val)
return false;
return (Compare(RootA->left, RootB->left) && Compare(RootA->right, RootB->right))
|| (Compare(RootA->left, RootB->right) && Compare(RootA->right, RootB->left));
}