添加 0513.找树左下角的值.md Scala版本

This commit is contained in:
ZongqinWang
2022-05-24 19:21:53 +08:00
parent a69ee03b3e
commit 17a2ea3c43

View File

@ -546,7 +546,50 @@ func findBottomLeftValue(_ root: TreeNode?) -> Int {
}
```
## Scala
递归版本:
```scala
object Solution {
def findBottomLeftValue(root: TreeNode): Int = {
var maxLeftValue = 0
var maxLen = Int.MinValue
// 递归方法
def traversal(node: TreeNode, leftLen: Int): Unit = {
// 如果左右都为空并且当前深度大于最大深度,记录最左节点的值
if (node.left == null && node.right == null && leftLen > maxLen) {
maxLen = leftLen
maxLeftValue = node.value
}
if (node.left != null) traversal(node.left, leftLen + 1)
if (node.right != null) traversal(node.right, leftLen + 1)
}
traversal(root, 0) // 调用方法
maxLeftValue // return关键字可以省略
}
}
```
层序遍历:
```scala
import scala.collection.mutable
def findBottomLeftValue(root: TreeNode): Int = {
val queue = mutable.Queue[TreeNode]()
queue.enqueue(root)
var res = 0 // 记录每层最左侧结果
while (!queue.isEmpty) {
val len = queue.size
for (i <- 0 until len) {
val curNode = queue.dequeue()
if (i == 0) res = curNode.value // 记录最最左侧的节点
if (curNode.left != null) queue.enqueue(curNode.left)
if (curNode.right != null) queue.enqueue(curNode.right)
}
}
res // 最终返回结果return关键字可以省略
}
```
-----------------------
<div align="center"><img src=https://code-thinking.cdn.bcebos.com/pics/01二维码一.jpg width=500> </img></div>