LeetCode之Binary Tree Level Order Traversal(Kotlin)

问题:



方法:
使用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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容