diff options
| -rw-r--r-- | works/solutions/cpp/101.cpp | 43 | 
1 files changed, 43 insertions, 0 deletions
diff --git a/works/solutions/cpp/101.cpp b/works/solutions/cpp/101.cpp new file mode 100644 index 0000000..a1dad6f --- /dev/null +++ b/works/solutions/cpp/101.cpp @@ -0,0 +1,43 @@ +#include <cstddef>
 +
 +struct TreeNode
 +{
 +    int val;
 +    TreeNode *left;
 +    TreeNode *right;
 +    TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 +};
 +
 +class Solution
 +{
 +public:
 +    static bool check(TreeNode *left, TreeNode *right)
 +    {
 +        if (left == NULL)
 +        {
 +            if (right == NULL)
 +                return true;
 +            else
 +                return false;
 +        }
 +        else
 +        {
 +            if (right == NULL)
 +                return false;
 +            else
 +            {
 +                if (left->val != right->val)
 +                    return false;
 +                return check(left->left, right->right) && check(left->right, right->left);
 +            }
 +        }
 +    }
 +
 +    bool isSymmetric(TreeNode *root)
 +    {
 +        if (root == nullptr)
 +            return true;
 +
 +        return check(root->left, root->right);
 +    }
 +};
  | 
