[LeetCode OJ]Symmetric Tree

来源:互联网 发布:什么是多维数据分析 编辑:程序博客网 时间:2024/06/06 09:36

Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).


For example, this binary tree is symmetric:


    1
   / \
  2   2
 / \ / \

3  4 4  3

But the following is not:

    1
   / \
  2   2
   \   \

   3    3

前面比较好多次,感觉有些麻烦,不过有没想到更好的方法。。。


/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public:    bool ischecked(TreeNode *rootLeft, TreeNode *rootRight) {        if(rootLeft == NULL && rootRight == NULL)            return true;                if(rootLeft == NULL && rootRight != NULL)            return false;                    if(rootLeft != NULL && rootRight == NULL)            return false;                    return (rootLeft->val == rootRight->val) && ischecked(rootLeft->left, rootRight->right) && ischecked(rootLeft->right, rootRight->left);    }        bool isSymmetric(TreeNode *root) {        if(root == NULL)            return true;                return ischecked(root->left, root->right);    }};

0 0
原创粉丝点击