当root1的左子树与root2的左子树相同,root1的右子树与root2的右子树相同时,这两颗二叉树相同。
当root1的左子树与root2的右子树相同,root1的右子树与root2的左子树相同时,这两颗二叉树同样相同。
以下是实现代码:
bool IsBSTEqual(BNode* root1,BNode* root2) { if (root1==NULL && root2==NULL) { return true; } else if (root1==NULL || root2==NULL) { return false; } else { if (root1->data != root2->data) { return false; } bool is_left = IsBSTEqual(root1->left,root2->left); bool is_right = IsBSTEqual(root1->right,root2->right); if (is_left&&is_right) return true; else { is_right = IsBSTEqual(root1->right,root2->left); is_left = IsBSTEqual(root1->left,root2->right); if (is_left&&is_right) return true; else return false; } } }