101. 对称二叉树

题目

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

示例1:

示例1

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

示例2:

示例2

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

提示:

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

进阶:

你可以运用递归和迭代两种方法解决这个问题吗?

解法

解法一:

递归

Java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public boolean isSymmetric(TreeNode root) {
if (root == null) {
return true;
}
return travel(root.left, root.right);
}

public boolean travel(TreeNode p, TreeNode q) {
if (p == null && q == null) {
return true;
} else if (p == null || q == null) {
return false;
}
if (p.val != q.val) {
return false;
}
return travel(p.left, q.right) && travel(p.right, q.left);
}
0%