zoukankan      html  css  js  c++  java
  • leetcode刷题笔记一百零七题 二叉树的层次遍历II

    leetcode刷题笔记一百零七题 二叉树的层次遍历II

    源地址:107. 二叉树的层次遍历 II

    问题描述:

    给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

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

    3

    /
    9 20
    /
    15 7
    返回其自底向上的层次遍历为:

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

    /**
    本题与102题二叉树的层次遍历思路基本一致,利用size确定每层元素
    针对自底向上打印结果,可以使用返回res.reverse 或者 将元素插入res头部
    */
    /**
     * Definition for a binary tree node.
     * class TreeNode(var _value: Int) {
     *   var value: Int = _value
     *   var left: TreeNode = null
     *   var right: TreeNode = null
     * }
     */
    import scala.collection.mutable
    import util.control.Breaks._
    object Solution {
        def levelOrderBottom(root: TreeNode): List[List[Int]] = {
            var res = new mutable.ListBuffer[List[Int]]()
            val queue = new mutable.Queue[TreeNode]()
            queue.enqueue(root)
    
            while (queue.isEmpty == false){
                val queueSize = queue.size
                val floorRes = new mutable.ListBuffer[Int]()
                for (i<- 0 until queueSize){
                    val tempNode = queue.dequeue
                    if (tempNode != null){
                        floorRes += tempNode.value
                        queue.enqueue(tempNode.left)
                        queue.enqueue(tempNode.right)
                    } 
                }
                if (floorRes.size > 0) floorRes.toList  +=: res
                
            }
            return res.toList
        }
    }
    
  • 相关阅读:
    查询数据库表的列字段、字段类型、字段长度、是否为空
    AndroidManifest.xml配置文件详解(转载)
    SQL Server Profiler(转载)
    sql 临时表
    sql 全局查询
    react.js
    middleware
    el
    jade模板使用心得
    jade template
  • 原文地址:https://www.cnblogs.com/ganshuoos/p/13440831.html
Copyright © 2011-2022 走看看