题目:
分析:
对于这道题,我们看到的第一时间就应该反应过来,我们要用广度遍历和回文数的判别思想来做
代码:
class Solution {
//存储遍历用的list
//这里用String类型是为了方便存储null的值
private List<List<String>> res=new ArrayList<>();
public boolean isSymmetric(TreeNode root) {
helpdeep(0,root);
for(List<String> temp :res){
for(int i=0;i<temp.size()/2;i++){
int now=temp.size()-i-1;
if(!temp.get(i).equals(temp.get(now)))
return false;
}
}
return true;
}
//广度优先遍历
private void helpdeep(int deep, TreeNode root){
if(deep==res.size()){
res.add(new ArrayList<String>());
}
if(root==null)
res.get(deep).add("null");
else
res.get(deep).add(root.val+"");
if(root==null) return;
helpdeep(deep+1,root.left);
helpdeep(deep+1,root.right);
}
}