方法一:遍历每一层
var isSymmetric = function(root) {
let arr = [root];
while(arr.length!==0){
let height = arr.length;
let tempArr = [];
for(let i=0;i<height;i++){
let shift = arr.shift();
if(shift.left!==null){
arr.push(shift.left);
tempArr.push(shift.left.val);
}else{
tempArr.push('null');
}
if(shift.right!==null){
arr.push(shift.right);
tempArr.push(shift.right.val);
}else{
tempArr.push('null');
}
}
if(!reverse(tempArr)){
return false;
}
}
return true;
};
function reverse(arr){
return arr.join('-')===arr.reverse().join('-');
}
方法二:递归
var isSymmetric = function(root) {
function jude(l1,l2){
if(l1===null&&l2===null)return true;
if(l1===null||l2===null)return false;
return l1.val===l2.val&&jude(l1.left,l2.right)&&jude(l1.right,l2.left);
}
return jude(root.left,root.right);
};