LeetCode之Binary Tree Level Order Traversal II(Kotlin)

问题:



方法:
递归遍历,然后按深度存入不同的list,最后输出map的values即为不同层级的nodes。

package com.eric.leetcode

class BinaryTreeLevelOrderTraversalII {
    private val result = mutableMapOf>()
    fun levelOrderBottom(root: TreeNode?): List> {
        result.clear()
        root?.let { search(it, 0) }
        return result.values.reversed()
    }

    private fun search(root: TreeNode, depth: Int) {
        val list = result[depth]
        if (list == null) {
            result[depth] = mutableListOf(root.`val`)
        } else {
            list.add(root.`val`)
        }
        root.left?.let {
            search(it, depth + 1)
        }
        root.right?.let {
            search(it, depth + 1)
        }
    }
}

有问题随时沟通

具体代码实现可以参考Github

你可能感兴趣的:(LeetCode之Binary Tree Level Order Traversal II(Kotlin))