美文网首页剑指 Offer Java版
剑指Offer Java版 面试题28:对称的二叉树

剑指Offer Java版 面试题28:对称的二叉树

作者: 孙强Jimmy | 来源:发表于2019-07-19 20:37 被阅读374次

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

    练习地址

    https://www.nowcoder.com/practice/ff05d44dfdb04e1d83bdbdab320efbcb

    参考答案

    /*
    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) {
            return pRoot == null || isSymmetrical(pRoot.left, pRoot.right);
        }
        
        private boolean isSymmetrical(TreeNode root1, TreeNode root2) {
            if (root1 == null && root2 == null) {
                return true;
            }
            if (root1 == null || root2 == null) {
                return false;
            }
            if (root1.val != root2.val) {
                return false;
            }
            return isSymmetrical(root1.left, root2.right) && isSymmetrical(root1.right, root2.left);
        }
    }
    

    复杂度分析

    • 时间复杂度:O(n)。
    • 空间复杂度:O(logn)。

    👉剑指Offer Java版目录
    👉剑指Offer Java版专题

    相关文章

      网友评论

        本文标题:剑指Offer Java版 面试题28:对称的二叉树

        本文链接:https://www.haomeiwen.com/subject/ddhelctx.html