力扣101. 对称二叉树(JavaScript)

递归:

var isSymmetric = function(root) {
    //判断左右子节点是否相等
    const dd=function(left,right){
        if((left==null&&right!==null) || (left!==null&&right==null)){
            return false
        }else if(left==null&&right==null){
            return true
        }else if(left.val!==right.val){
            return false
        }
        return dd(left.left,right.right)&&dd(left.right,right.left)
    }
    if(root===null){
        return true
    }
    return dd(root.left,root.right)
};

迭代:

var isSymmetric = function(root) {
   if(root===null){
       return true
   }
   let q1=[root.left]
    q1.push(root.right)
   while(q1.length){
       let left=q1.shift()
       let right=q1.shift()
       //左右节点为空
       if(left==null&&right==null){
           continue
       }
       if(left==null||right==null||(left.val!==right.val)){
           return false
       }
       q1.push(left.right)
       q1.push(right.left)
       q1.push(left.left)
       q1.push(right.right)
   }
   return true
};

你可能感兴趣的:(力扣算法题,leetcode,javascript,前端)