递归
public class Solution {
public boolean isSymmetric(TreeNode root) {
// 如果根节点为空,返回 true,递归判断左子树与右子树是否对称
return root == null || recursion(root.left, root.right);
}
private boolean recursion(TreeNode left, TreeNode right) {
// 如果左右都为空,说明已经到达叶子节点
if (left == null && right == null) return true;
// 如果左右其中一个为空或左右值不一致,说明不对称
if (left == null || right == null || left.val != right.val) return false;
// 递归判断 left 的左节点是否等于 right 的右节点 && left 的 右节点是否等于 right 的左节点
return recursion(left.left, right.right) && recursion(left.right, right.left);
}
}