1302. 层数最深叶子节点的和

Posted 心脏dance

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1302. 层数最深叶子节点的和相关的知识,希望对你有一定的参考价值。

 题目链接:力扣

思路:bfs一层一层求和,当没有下一层的时候(就是队列为empty的时候)就是最后一层,记录下结果即可。 

上代码:

/**
 * Example:
 * var ti = TreeNode(5)
 * var v = ti.`val`
 * Definition for a binary tree node.
 * class TreeNode(var `val`: Int) 
 *     var left: TreeNode? = null
 *     var right: TreeNode? = null
 * 
 */
class Solution 
    fun deepestLeavesSum(root: TreeNode?): Int 
        val queue = LinkedList<TreeNode>()
        var result = 0
        root?.let  queue.add(it) 
        while (queue.isNotEmpty()) 
            var currentSize = queue.size
            var tmpResult = 0
            while (currentSize-- > 0) 
                val tmp = queue.poll()
                if (tmp.left == null && tmp.right == null) 
                    tmpResult += tmp.`val`
                 else 
                    tmp.left?.let  queue.add(it) 
                    tmp.right?.let  queue.add(it) 
                
            
            if (queue.isEmpty()) 
                result = tmpResult
            
        
        return result
    

 

以上是关于1302. 层数最深叶子节点的和的主要内容,如果未能解决你的问题,请参考以下文章

每日一题1302. 层数最深叶子节点的和

1302. 层数最深叶子节点的和

1302. 层数最深叶子节点的和

1302. 层数最深叶子节点的和

LeetCode 1302. 层数最深叶子节点的和

LeetCode 1302 层数最深叶子节点的和[BFS DFS] HERODING的LeetCode之路