题目考查的知识点
- 递归遍历二叉树
题目解答方法的文字解析
- 判断root节点是否仅存在一个孩子的情况,是则返回false
- 如果root存在左右孩子,判断左右孩子的值是否相等,否则返回false
- 递归,遍历左右子树是否是对称的
本题解析所用的编程语言
- c++
完整且正确的编程代码
class Solution { public: bool isSymmetric(TreeNode* root) { if (!root)return true; else return helper(root->left, root->right); } bool helper(TreeNode* lhs, TreeNode* rhs) { if (!lhs)return rhs == nullptr; else if (!rhs)return lhs == nullptr; if (lhs->val != rhs->val)return false; return helper(lhs->left, rhs->right) & helper(lhs->right, rhs->left); } };