美文网首页
LeetCode之Path Sum II(Kotlin)

LeetCode之Path Sum II(Kotlin)

作者: 糕冷羊 | 来源:发表于2020-06-15 11:20 被阅读0次

问题:



方法:
回溯法加DFS,在遇到叶子节点时判断路径是否符合要求。

class PathSumII {
    fun pathSum(root: TreeNode?, sum: Int): List<List<Int>> {
        val result = mutableListOf<List<Int>>()
        if (root != null) {
            val list = mutableListOf<Int>()
            dfs(root, list, result, sum)
        }
        return result
    }

    private fun dfs(root: TreeNode, list: MutableList<Int>, lists: MutableList<List<Int>>, sum: Int) {
        val new = mutableListOf<Int>()
        new.addAll(list)
        new.add(root.`val`)
        if (root.left == null && root.right == null) {
            if (new.sum() == sum) {
                lists.add(new)
            }
        } else {
            root.left?.let { dfs(it, new, lists, sum) }
            root.right?.let { dfs(it, new, lists, sum) }
        }
    }
}

fun main(args: Array<String>) {

}

有问题随时沟通

具体代码实现可以参考Github

相关文章

网友评论

      本文标题:LeetCode之Path Sum II(Kotlin)

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