对称二叉树

给你一个二叉树的根节点 root , 检查它是否轴对称。

示例 1:

img

1
2
输入:root = [1,2,2,3,4,4,3]
输出:true

示例 2:

img

1
2
输入:root = [1,2,2,null,3,null,3]
输出:false

提示:

  • 树中节点数目在范围 [1, 1000]
  • -100 <= Node.val <= 100

  1. 函数返回值:布尔类型
  2. 递归返回条件:两个节点至少有一个为空,如果相等返回true,如果不相等返回false
  3. 函数逻辑:如果两个节点的值相等,并且p的左子树等于q的右子树
1
2
3
4
5
6
7
8
9
10
11
12
class Solution {
public boolean isSymmetric(TreeNode root) {
return check(root.left, root.right);
}

private boolean check(TreeNode p, TreeNode q) {
if (p == null || q == null) {
return p == q;
}
return p.val == q.val && check(p.right, q.left) && check(p.left, q.right);
}
}