对称的二叉树

题目描述:

请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。

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

1
/ \
2   2
/ \ / \
3  4 4  3

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

1
/ \
2   2
 \   \
 3    3

示例 1:
输入:root = [1,2,2,3,4,4,3]
输出:true

示例 2:
输入:root = [1,2,2,null,3,null,3]
输出:false


解法:

递归
对称二叉树判定条件
对于树中任意两个对称节点L和R,一定有:
1.L.val = R.val
2.L.left.val = R.right.val L的左子节点和R的右子节点对称
3.L.right.val = R.left.val L的右子节点和R的左子节点对称

class Solution {
    public boolean isSymmetric(TreeNode root) {
        return ismmetirc(root,root);
    }

    public boolean ismmetirc(TreeNode t1,TreeNode t2)
    {
        if(t1==null && t2==null) return true;
        if(t1==null || t2==null) return false;
        //若t1和t2的值不相等,直接返回false
        if(t1.val!=t2.val) return false;
        //判断t1的左子节点和t2的右子节点,t1的右子节点和t2的左子节点是否同时满足对称,同时满足才能说明t1,t2对称
        return ismmetirc(t1.left,t2.right) && ismmetirc(t1.right,t2.left);
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对...
    凌霄文强阅读 3,134评论 0 2
  • 题目: 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,下图所...
    咋家阅读 1,612评论 0 0
  • 对称的二叉树 题目描述 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称...
    阿星啊阿星阅读 2,750评论 0 0
  • 题目 请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。 例如,二叉树...
    人一己千阅读 1,216评论 0 0
  • 题目描述 请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对...
    萨缪阅读 1,706评论 0 1

友情链接更多精彩内容