1 bool compare(Node* left, Node* right) {
2     if (left == NULL && right != NULL) return false;
3     else if (left != NULL && right == NULL) return false;
4     else if (left == NULL && right == NULL) return true;
5     // 排除了空节点,再排除数值不相同的情况
6     else if (left->data_ != right->data_) return false;
7     return compare(left->left, right->right)&& compare(left->right, right->left);
8 }

思路:判断根节点的左右右子节点是否相等,然后判断左子节点的左子结点和右子节点的右子节点是否相等,左子节点的右子结点和右子节点的左子节点是否相等(规模更小的子问题)

posted on 2023-08-02 17:29  小凉拖  阅读(6)  评论(0)    收藏  举报