class Solution {
public boolean isSymmetric(TreeNode root) {
if (root == null) {
return true;
}
return cmp(root.left, root.right);
}
private boolean cmp(TreeNode node1, TreeNode node2) {
if (node1 == null && node2 == null) {
return true;
}
if (node1 == null || node2 == null || node1.val != node2.val) {
return false;
}
return cmp(node1.left, node2.right) && cmp(node1.right, node2.left);
}
}
参考解题代码如上:
解题思路如下:
构造一个方法cmp,判断一个根节点的左右孩子是否相同,再以左右孩子分别作为根节点,再进入方法,以此循环,直到遍历到结尾,最后得出是否对称的结论。