LeetCode之Sum Root to Leaf Numbers(Kotlin)

104 阅读1分钟

问题:


方法: 递归,向下传递值并累加,当遇到叶子节点时将结果加到result上,最后即得到最终结果。

package com.eric.leetcode

class SumRootToLeafNumbers {
    var result = 0
    fun sumNumbers(root: TreeNode?): Int {
        result = 0
        root?.let { sum(it, 0) }
        return result
    }

    private fun sum(root: TreeNode, num: Int) {
        val newNum = num * 10 + root.`val`
        if (root.left == null && root.right == null) {
            result += newNum
        } else {
            root.left?.let { sum(it, newNum) }
            root.right?.let { sum(it, newNum) }
        }
    }
}

有问题随时沟通

具体代码实现可以参考Github