/*
* 请实现一个函数,用来判断一颗二叉树是不是对称的。
* 思路:先比较根节点的左右节点,再比较左子树的左节点和右子树的右节点(画一棵对称的二叉树一目了然)
*/
public class IsSymmetrical {
boolean isSymmetrical(TreeNode pRoot) {
if(pRoot == null) return true;
return isEqual(pRoot.left, pRoot.right);
}
public static boolean isEqual(TreeNode pLeft, TreeNode pRight) {
if(pLeft == null && pRight == null) //均为空
return true;
if((pLeft == null && pRight != null) //有一个为空
|| (pLeft != null && pRight == null)) {
return false;
}
if(pLeft.val == pRight.val) {
return isEqual(pLeft.left, pRight.right) && isEqual(pLeft.right, pRight.left);
}
return false;
}
}
《剑指offer》-判断一颗二叉树是不是对称的
最新推荐文章于 2022-01-12 20:37:24 发布