[LeetCode] 101. Symmetric Tree

来源:互联网 发布:苹果6怎么usb共享网络 编辑:程序博客网 时间:2024/06/08 14:37
Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree `[1,2,2,3,4,4,3]` is symmetric:
    1   / \  2   2 / \ / \3  4 4  3
But the following `[1,2,2,null,3,null,3]` is not:
    1   / \  2   2   \   \   3    3
Note:Bonus points if you could solve it both recursively and iteratively.
class Solution {public:    bool isSymmetric(TreeNode* root) {        if (root == nullptr) return true;        return isSymmetric(root->left, root->right);    }private:    bool isSymmetric(TreeNode *left, TreeNode *right) {        if ((left == nullptr && right != nullptr) ||            (left != nullptr && right == nullptr))            return false;        if (left == nullptr && right == nullptr)            return true;        if (left->val != right->val)            return false;        if (isSymmetric(left->left, right->right) == false)            return false;        if (isSymmetric(left->right, right->left) == false)            return false;        return true;    }};

这里写图片描述

原创粉丝点击