zoukankan      html  css  js  c++  java
  • [LeetCode] 102. Binary Tree Level Order Traversal(二叉树的中序遍历)

    Description

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
    给定一棵二叉树,返回其层序遍历(从左至右,从上至下)。

    For example:
    Given binary tree [3,9,20,null,null,15,7],

        3
       / 
      9  20
        /  
       15   7
    

    return its level order traversal as:

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

    Solution

    /**
     * Example:
     * var ti = TreeNode(5)
     * var v = ti.`val`
     * Definition for a binary tree node.
     * class TreeNode(var `val`: Int) {
     *     var left: TreeNode? = null
     *     var right: TreeNode? = null
     * }
     */
    import java.util.*
    
    class Solution {
        fun levelOrder(root: TreeNode?): List<List<Int>> {
            if (root == null) {
                return emptyList()
            }
            val queue: Queue<TreeNode> = ArrayDeque()
            queue.offer(root)
            
            val result = arrayListOf<List<Int>>()
            while (queue.isNotEmpty()) {
                val levelNodes = queue.size
                val curList = arrayListOf<Int>()
                for (i in 1..levelNodes) {
                    val node = queue.poll()
                    curList.add(node.`val`)
                    node.left?.let { queue.offer(it) }
                    node.right?.let { queue.offer(it) }
                }
                result.add(curList)
            }
            
            return result
        }
    }
    
  • 相关阅读:
    Android SDCard操作(文件读写,容量计算)
    weibo4
    weibo5
    android源码结构分析
    后台退出事件
    获取服务器和客户端信息
    vs2008破解升级
    禁止所有蜘蛛
    页面的回发与回传
    显示上一条新闻 下一条新闻
  • 原文地址:https://www.cnblogs.com/zhongju/p/13939823.html
Copyright © 2011-2022 走看看