判断二叉树是否对称

判断给定的一棵二叉树是否是对称的,以轴对称。

左右子树同时遍历,若出现不一致,则说明不对称。

struct Node  
{  
    Node *left;  
    Node *right;  
    Node()  
    {  
        left = right = NULL;  
    }
};  
  
bool Judge(Node *leftRoot, Node *rightRoot)  
{  
    if(leftRoot != NULL && rightRoot != NULL)  
    {  
        if( Judge(leftRoot->left, rightRoot->right)  && Judge(leftRoot->right, rightRoot->left) )  
            return true;  
        else  
            return false;  
    }  
    else if(leftRoot == NULL && rightRoot == NULL)  
    {  
        return true;  
    }  
    else  
    {  
        return false;  
    }  
}  
  
  
bool JudgeTree(Node *root)  
{  
    if(root == NULL)  
        return true;  
  
    return Judge(root->left, root->right);  
}  


posted @ 2017-04-09 13:37  sowhat1412  阅读(204)  评论(0编辑  收藏  举报