LeetCode [Symmetric Tree]

来源:互联网 发布:微信小程序制作淘宝客 编辑:程序博客网 时间:2024/06/07 01:19

题目:

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

判断一棵二叉树是否是镜像的,主要思路是基于对当前节点的判断之后进行递归,对于非递归方式暂未实现。

代码如下:

    bool isSymmetric(TreeNode* root)    {        if(!root) return true;        if (root->left && root->right)        {            if(root->left->val == root->right->val)                return isSymmetricHelper(root->left, root->right);            else return false;        }        else if(!root->left && !root->right) return true;        else return false;    }    bool isSymmetricHelper(TreeNode * p, TreeNode * q)    {        if(!p && !q) return true;        else if(p && q)        {            if(p->val == q->val)                 return isSymmetricHelper(p->left, q->right) && isSymmetricHelper(p->right, q->left);            else return false;        }        else return false;    }
0 0
原创粉丝点击