Description:
题目大意:判断是不是一个对称二叉树
解题思路:
算法标签:递归
- 如果左右都为 NULL ,返回 true
- 如果只有一个为 NULL ,返回 false
代码:
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};
*/
class Solution {
public:
bool isSame(TreeNode* root1,TreeNode* root2) {
if(root1 == NULL && root2 ==NULL)
return true;
if(root1 == NULL || root2 ==NULL)
return false;
return root1 -> val == root2 -> val && isSame(root1 -> left, root2 -> right) && isSame(root1 -> right, root2 -> left);
}
bool isSymmetrical(TreeNode* pRoot) {
return isSame(pRoot,pRoot);
}
};