zoukankan      html  css  js  c++  java
  • 对称二叉树

    递归写法

    function help(root) {
        return isSymmetric(root, root);
    }
      
    function isSymmetric(node1, node2) {
        //判断两个节点都是否为空
        if (!node1 && !node2) {
          return true;
        }
        //判断两个节点不相等
        if (!node1 || !node2 || node1.val != node2.val) {
          return false;
        }
    
        return isSymmetric(node1.left, node2.right) && isSymmetric(node1.right, node2.left);
    }

    非递归写法

    function isSymmetric(root) {
        if(!root) return true
        const queue = [root.left, root.right]
        let node1, node2
    
        while(queue.length) {
            node1 = queue.shift()
            node2 = queue.shift()
    
            if (!node1 && !node2) continue
            if (!node1 || !node2 || node1.val !== node2.val) return false
            
            //入队顺序,按照对称比对的顺序
            queue.push(node1.left)
            queue.push(node2.right)
            queue.push(node1.right)
            queue.push(node2.left)
        }
    
        return true
    }
  • 相关阅读:
    Köln-keith jarrett
    关于写博客,看博客
    django中使用celery
    django邮箱验证模块
    django验证码模块使用
    auth模块
    djangoORM语句
    django的from组件
    django分页
    django基本数据类型
  • 原文地址:https://www.cnblogs.com/mengff/p/12795257.html
Copyright © 2011-2022 走看看