美文网首页
LeetCode之Binary Tree Level Order

LeetCode之Binary Tree Level Order

作者: 糕冷羊 | 来源:发表于2021-11-22 13:18 被阅读0次

    问题:



    方法:
    使用dfs即可,在递归的过程中要传递level,对相同level的节点添加到相同list,遍历所有节点后即可以得到最终的结果。

    package com.eric.leetcode
    
    class BinaryTreeLevelOrderTraversal {
        val result = mutableMapOf<Int, MutableList<Int>>()
        fun levelOrder(root: TreeNode?): List<List<Int>> {
            dfs(root, 0)
            return result.values.toList()
        }
    
        private fun dfs(root: TreeNode?, level: Int) {
            if (root == null) {
                return
            }
            val list = result.getOrDefault(level, mutableListOf())
            list.add(root.`val`)
            result[level] = list
            dfs(root.left, level + 1)
            dfs(root.right, level + 1)
        }
    }
    

    有问题随时沟通

    具体代码实现可以参考Github

    相关文章

      网友评论

          本文标题:LeetCode之Binary Tree Level Order

          本文链接:https://www.haomeiwen.com/subject/behbtrtx.html