判断二叉树是否对称,比较的可不是左右节点;
判断二叉树是否对称,比较的是根节点的左子树和右子树是不是相互反转的;
如何比较呢?
要比较的是两颗子树的里侧和外侧的元素是否相等;
使用迭代法:
/**
* 1、确定入参,返沪值
* */
public boolean compareNode(TreeNode left, TreeNode right){
/**
* 2、确定终止条件
* */
if (left ==null && right !=null)return false;
else if (left !=null && right ==null)return false;
else if (left ==null && right ==null)return true;
if (left.val != right.val)return false;
/**
* 3、确定每层逻辑
* */
boolean out = compareNode(left.left,right.right);
boolean in = compareNode(left.right,right.left);
if (out ==true && in ==true) {
return true;
}
return false;
}