剑指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)。
哎呀,如果我的名片丢了。微信搜索“全菜工程师小辉”,依然可以找到我
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务