剑指offer最优解Java版-对称的二叉树

题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

解决方法:递归

class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;
    }
}
public class Solution {
    boolean isSymmetrical(TreeNode pRoot)
    {
        if(pRoot==null){
            return true;
        }
        return isSame(pRoot.left,pRoot.right);
    }
    
    private boolean isSame(TreeNode left, TreeNode right){
        if(left == null) return right==null;
        if(right == null) return false;
        if(left.val==right.val){
            return isSame(left.left,right.right) && isSame(left.right,right.left);
        }else{
            return false;
        }
    }
}

复杂度分析:

  • 时间复杂度:O(n)。
  • 空间复杂度:O(n)。
哎呀,如果我的名片丢了。微信搜索“全菜工程师小辉”,依然可以找到我
全部评论

相关推荐

不愿透露姓名的神秘牛友
01-20 15:00
24届毕业生, 计算机专业,因为公司强制安排去了人力,氛围不好,没人教我,又一堆活要给我,领导和稀泥,做不完的表格,每天都笑不出来,真的感觉要崩溃了,想离职,但是还没找到下家,上班的意义到底是什么呢?
在思考的熊熊很讨厌吃香菜:不舒服的环境,工作下去也只是对身心不益。我们肯定是有得选的,不要放弃。我也是24届,已经找到第三份java的工作了,26号入职领电脑,薪资还整整增加了50%。
点赞 评论 收藏
分享
2024-11-29 19:51
武汉理工大学 Java
野猪不是猪🐗:自从我把自己的学校和专业改成现在这个,求职那栏就再也没人骚扰过我(乐)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务