剑指offer第五十八题。

题目描述

请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。

解题思路

递归下去,不赘述了。

我的答案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class Solution {
boolean isSymmetrical(TreeNode pRoot)
{
if(pRoot == null){
return true;
}

return judge(pRoot.left,pRoot.right);
}

private boolean judge(TreeNode left,TreeNode right){
//左子树为空的话,右子树必须为空才符合条件
if(left == null){
return (right == null);
}
//左子树不为空,右子树为空了,false
if(right == null){
return false;
}

//左右结点的值不相等则false
if(left.val != right.val){
return false;
}

//递归下去
return judge(left.right,right.left) && judge(left.left,right.right);
}
}