题目: 给你一个二叉树的根节点 root
, 检查它是否轴对称。
下面给了2个例子:
package code.code_03;
/**
* 力扣 https://leetcode.cn/problems/symmetric-tree/
* 对称二叉树,又称镜面树
*
* 给你一个二叉树的根节点 root , 检查它是否轴对称。
* 输入 root = [1,2,2,3,4,4,3] 输出:true
* 输入 root = [1,2,2,null,3,null,3] false
*/
public class Code03_MirrioTree {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode() {}
TreeNode(int val) { this.val = val; }
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
public boolean isMirrioNode(TreeNode h1, TreeNode h2)
{
if (h1 == null && h2 == null) {
return true;
}
if ((h1 == null && h2 != null)
|| (h1 != null && h2 == null)
|| h1.val != h2.val){
return false;
}
/*if ((h1 == null ^ h2 == null) || h1.val != h2.val) {
return false;
}*/
return isMirrioNode(h1.left, h2.right) && isMirrioNode(h1.right, h2.left);
}
public boolean isSymmetric(TreeNode root)
{
if (root == null) {
return false;
}
return isMirrioNode(root.left, root.right);
}
public static void main(String[] args) {
}
}