对称的二叉树
Desicription
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
Solution
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };
class Solution { private: bool isSymmetrical(TreeNode* left, TreeNode* right) { if(left == nullptr && right == nullptr) { return true; } else if(left == nullptr || right == nullptr) { return false; } else { if(left->val == right->val) { return isSymmetrical(left->left, right->right) && isSymmetrical(left->right, right->left); } else { return false; } } } public: bool isSymmetrical(TreeNode* pRoot) { if(!pRoot) { return true; } else { return isSymmetrical(pRoot->left, pRoot->right); } } };
|