Symmetric Tree

来源:互联网 发布:windows程序设计下载 编辑:程序博客网 时间:2024/06/06 01:45

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

Note:
Bonus points if you could solve it both recursively and iteratively.

C语言代码:

bool check(struct TreeNode *leftNode, struct TreeNode *rightNode)

    {
        if (leftNode == NULL && rightNode == NULL)
            return true;
        if (leftNode == NULL || rightNode== NULL)
            return false;
        return leftNode->val == rightNode->val && check(leftNode->left, rightNode->right) && check(leftNode->right, rightNode->left);
    }
bool isSymmetric(struct TreeNode* root) {
     if (root == NULL)
            return true;
           return check(root->left, root->right);
    }
   
0 0
原创粉丝点击