剑指offer-58-对称的二叉树 -- Java实现

题目

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

分析

思路一:

时间复杂度:o(N)
空间复杂度:o(N)

代码:

/*
public 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 isSymmetrical(pRoot.left, pRoot.right);
    }
    
    private boolean isSymmetrical(TreeNode left, TreeNode right) {
        if(left==null&&right==null) return true;
        if(left==null||right==null) return false;
        return left.val==right.val
            &&isSymmetrical(left.left, right.right)
            &&isSymmetrical(left.right, right.left);
    }
}
发布了46 篇原创文章 · 获赞 17 · 访问量 1019

猜你喜欢

转载自blog.csdn.net/weixin_42054926/article/details/103680089