天天看點

兩個二叉樹是否為鏡像(對稱)二叉樹

#pragma once

#include<stdio.h>

#include<assert.h>

typedef struct Node{

    int value;

    struct Node *left;

    struct Node *right;

}Node;

重點了解:讓p1的左子樹和p2的右子樹相同,p1的右子樹和p2的左子樹相同即可

                                       A                                                  A

                              B                                                                     B

                       C           D                                                        D              C

bool isMirror(Node *p1, Node *p2){

    if (p1 == NULL&&p2 == NULL){

        return true;

    }

    if (p1 == NULL || p2 == NULL){

        return  false;

    }

    return

        p1->value == p2->value &&

        isSameTree(p1->left, p2->right) &&

        isSameTree(p1->right, p2->left);

}

繼續閱讀