数据结构与算法二叉树——对称二叉树

Posted buptleida

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构与算法二叉树——对称二叉树相关的知识,希望对你有一定的参考价值。

对称二叉树

LeetCode:对称二叉树

题目描述:

给定一个二叉树,检查它是否是镜像对称的。

示例:

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

    1
   /   2   2
 /  / 3  4 4  3
返回true

思想:

1.怎么判断一棵树是不是对称二叉树? 答案:如果所给根节点,为空,那么是对称。如果不为空的话,当他的左子树与右子树对称时,他对称

2.那么怎么知道左子树与右子树对不对称呢?在这我直接叫为左树和右树 答案:如果左树的左孩子与右树的右孩子对称,左树的右孩子与右树的左孩子对称,那么这个左树和右树就对称。

仔细一想就明白了,递归写起来很简单。

代码

class Solution {
    public boolean isSymmetric(TreeNode root) {
        if(root==null) return true;
        return isSonSymmetric(root.left, root.right);
    }
    private boolean isSonSymmetric(TreeNode m, TreeNode n){
        if(m==null&&n==null)
            return true;
        if(m==null||n==null||m.val!=n.val)
            return false;
        return isSonSymmetric(m.left,n.right)&&isSonSymmetric(m.right,n.left);
    }
}

以上是关于数据结构与算法二叉树——对称二叉树的主要内容,如果未能解决你的问题,请参考以下文章

⭐算法入门⭐《二叉树》简单03 —— LeetCode 101. 对称二叉树

代码随想录算法训练营第15天 | ● 层序遍历 10 ● 226.翻转二叉树 ● 101.对称二叉树 2

每日算法——对称二叉树

LeetCode(算法)- 101. 对称二叉树

101. 对称二叉树

101. 对称二叉树