码迷,mamicode.com
首页 > 其他好文 > 详细

(树)判断一颗二叉树是否为镜像对称

时间:2017-01-22 15:03:15      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:bin   pre   rank   com   nbsp   code   false   www   treenode   

  • 原题:https://www.nowcoder.com/practice/1b0b7f371eae4204bc4a7570c84c2de1?tpId=46&tqId=29077&tPage=3&rp=3&ru=/ta/leetcode&qru=/ta/leetcode/question-ranking

  • 思路:
    • //判断一个数是否为镜像对称:先判断根,在判断左右子树。如果左右子树都为空那就是,如果左右子树不是同时为空那就不是
          //当左右子树都存在的时候,判断他们的值是否相等,如果相等那么久递归的对他们的字节点判断(左边的左=右边的右;左边的右==右边的左)

  • 代码
    /**
     * 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 isSymmetric(TreeNode *root) {
            if (!root)
                return true;
            return Symmetric(root->left, root->right);
        }
        bool Symmetric(TreeNode *left, TreeNode *right){
            if (!left && !right)
                return true;
            if (!left || !right)
                return false;
            if (left->val == right->val){
                return (Symmetric(left->left, right->right) && Symmetric(right->left, left->right));
            }
            return false;
        }
    };

     

(树)判断一颗二叉树是否为镜像对称

标签:bin   pre   rank   com   nbsp   code   false   www   treenode   

原文地址:http://www.cnblogs.com/Kobe10/p/6340232.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!