数据结构与算法:对称的二叉树

描述
给定一棵二叉树,判断其是否是自身的镜像(即:是否对称)
例如: 下面这棵二叉树是对称的

数据结构与算法:对称的二叉树_第1张图片

对称的二叉树

public class SymmetricalTree {

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

        public TreeNode(int val) {
            this.val = val;

        }

    }

    boolean recursion(TreeNode root1, TreeNode root2){
        //可以两个都为空
        if(root1 == null && root2 == null)
            return true;
        //只有一个为空或者节点值不同,必定不对称
        if(root1 == null || root2 == null || root1.val != root2.val)
            return false;
        //每层对应的节点进入递归比较
        return recursion(root1.left, root2.right) && recursion(root1.right, root2.    left);
    }

    boolean isSymmetrical(TreeNode pRoot) {
        if(pRoot == null)
            return true;
        if(pRoot.left == null && pRoot.right == null)
            return true;
        //只有一个为空或者节点值不同,必定不对称
        if(pRoot.left == null || pRoot.right == null || pRoot.left.val != pRoot.right.val)
            return false;
        return recursion(pRoot.left, pRoot.right);
    }


    public static void main(String[] args) {
        
    }
}

你可能感兴趣的:(数据结构,算法,java,java,算法,数据结构)