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

Posted Kobe10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(树)判断一颗二叉树是否为镜像对称相关的知识,希望对你有一定的参考价值。

  • 原题: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;
        }
    };

     

以上是关于(树)判断一颗二叉树是否为镜像对称的主要内容,如果未能解决你的问题,请参考以下文章

判断二叉树是否对称的代码

LeetCode-对称二叉树

判断一颗二叉树是否为二叉平衡树 python 代码

剑指offer面试题 28. 对称的二叉树

剑指offer:对称的二叉树

剑指offer28题