101.|101. 对称二叉树

题目描述:
给定一个二叉树,检查它是否是镜像对称的。
例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

1 / \ 22 / \ / \ 34 43

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:
1 / \ 22 \\ 33

思路: 【101.|101. 对称二叉树】递归,两个子节点值相等,左节点的右子树与右节点的左子树镜像,右节点的左子树和左节点的右子树镜像,具体实现如下。
/** * Definition for a binary tree node. * struct TreeNode { *int val; *TreeNode *left; *TreeNode *right; *TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: bool isSymmetric(TreeNode* root) { if(!root) { return true; } if(!root->left && !root->right) { return true; } return isSymmetricCore(root->left,root->right); }bool isSymmetricCore(TreeNode* left,TreeNode* right) { if(left && right) { return (left->val==right->val)&&isSymmetricCore(left->right,right->left)&&isSymmetricCore(left->left,right->right); } else if(!left && !right) { return true; } return false; } };

    推荐阅读