本文共 892 字,大约阅读时间需要 2 分钟。
请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。
/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; }}*/public class Solution { boolean compare(TreeNode p1, TreeNode p2) { if(p1==null && p2==null) //已经比较完成 { return true; } if(p1==null || p2==null) //满足这个条件的就是左右两边不对称 { return false; } if(p1.val==p2.val) //两个值相等 { return compare(p1.left,p2.right) && compare(p1.right,p2.left); //这一步是精髓,因为是镜像,那么就是,最左边与最右边进行比较,依次类推,好好体会。 } else { return false; } } boolean isSymmetrical(TreeNode pRoot) { if(pRoot==null) { return true; } return compare(pRoot.left,pRoot.right); }}
转载地址:http://mdkmi.baihongyu.com/