class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
public class Solution {
public boolean isMirror(TreeNode left, TreeNode right) {
return left == null && right == null ||
left != null && right != null && left.val == right.val && isMirror(left.left, right.right) && isMirror(left.right, right.left);
}
//判断该树是否对称
public boolean isSymmetric(TreeNode root) {
return root == null || isMirror(root.left, root.right);
}
//判断两棵树是否相同(结构一样,对应节点值一样)
public boolean isSameTree(TreeNode p, TreeNode q) {
return p == null && q == null ||
p != null && q != null && p.val == q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
}
}
对称树