简介
题目链接:https://leetcode.cn/problems/symmetric-tree/description/
解决方式:二叉树 + 递归
递归
思路:二叉树的左右子树需要镜像对称,我们比较的顺序是 左右子树根节点-左子树的左子节点与右子树的右子节点-左子树的右子节点与右子树的左子节点,依次比较下去即可解决。
java
class Solution {
public boolean isSymmetric(TreeNode root) {
// 边界处理
if(root == null) return true;
// 递归
return isMirror(root.left, root.right);
}
private boolean isMirror(TreeNode t1, TreeNode t2){
// 递归终止条件
if(t1 == null && t2 == null) return true;
if(t1 == null || t2 == null) return false;
// 递归公式
return (t1.val == t2.val) && isMirror(t1.left, t2.right) && isMirror(t1.right, t2.left);
}
}