题目描述:给你一个二叉树的根节点 , 检查它是否轴对称。root
获得更多?算法思路:代码文档,算法解析的私得。
运行效果
完整代码
/**
* 2 * @Author: LJJ
* 3 * @Date: 2023/8/17 8:47
* 4
*/
public class SymmetricTree {
static class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode(int val){
this.val = val;
}
}
public boolean isSymmetric(TreeNode root){
if (root == null){
return true;
}
return isMirror(root.left,root.right);
}
private boolean isMirror(TreeNode left, TreeNode right){
if (left == null && right == null){
return true;
}
if (left == null || right == null){
return false;
}
return (left.val == right.val) && isMirror(left.left,right.right) && isMirror(left.right,right.left);
}
public static void main(String[] args) {
SymmetricTree symmetricTree = new SymmetricTree();
// 构建一个对称的二叉树
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(2);
root.left.left = new TreeNode(3);
root.left.right = new TreeNode(4);
root.right.left = new TreeNode(4);
root.right.right = new TreeNode(3);
boolean isSymmetric = symmetricTree.isSymmetric(root);
System.out.println("是否是轴对称的: " + isSymmetric); // 输出 true
}
}