http://blog.youkuaiyun.com/spch2008/article/details/9365281
左右子树同时遍历,若出现不一致,则说明不对称。
代码如下:
- 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->left) && Judge(leftRoot->right, rightRoot->right) )
- 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);
- }