zoukankan      html  css  js  c++  java
  • 剑指 Offer 32

    通过率 58.8%

    题目链接

    题目描述:

    请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。

    例如:
    给定二叉树: [3,9,20,null,null,15,7],

    3
    /
    9 20
    /
    15 7

    返回其层次遍历结果:

    [
    [3],
    [20,9],
    [15,7]
    ]

    提示:

    节点总数 <= 1000

    思路:

    这题基于另一道(here)进行了改变,新增了偶数行反向打印的条件,方案如下:

    判断是奇数行还是偶数行,如果res的长度为奇数,那么当前得到的temp就是偶数行,偶数行反序,只要执行temp.reverse()再弹入res即可

     1 /*JavaScript*/
     2 /**
     3  * Definition for a binary tree node.
     4  * function TreeNode(val) {
     5  *     this.val = val;
     6  *     this.left = this.right = null;
     7  * }
     8  */
     9 /**
    10  * @param {TreeNode} root
    11  * @return {number[][]}
    12  */
    13 var levelOrder = function(root) {
    14     if(!root) return []
    15     const que = []
    16     const res = []
    17     que.push(root)
    18 
    19     while(que.length) {
    20         let len = que.length
    21         const temp = []
    22         while(len--) {
    23             if(que[0].left) que.push(que[0].left)
    24             if(que[0].right) que.push(que[0].right)
    25             temp.push(que.shift().val)
    26         }
    27         if(res.length % 2) temp.reverse()
    28         res.push(temp)
    29     }
    30     return res
    31 };
  • 相关阅读:
    安装go版本
    golang简介
    安装MySQL
    art.dialog.art 中,将子页面窗口中的值传递给父框架中
    Windows7下安装CentOS
    生成uuid
    如何开启win7端口的图文教程
    PHPMailer不能发送邮件
    sql 如果关联表 没有值 设置 默认值
    php array 分页
  • 原文地址:https://www.cnblogs.com/wwqzbl/p/15146554.html
Copyright © 2011-2022 走看看