Skip to content

Commit 422e097

Browse files
committed
1161. Maximum Level Sum of a Binary Tree
1 parent 63ad961 commit 422e097

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
class TreeNode(_value: Int = 0, _left: TreeNode = null, _right: TreeNode = null) {
3+
var value: Int = _value
4+
var left: TreeNode = _left
5+
var right: TreeNode = _right
6+
}
7+
8+
object Solution {
9+
import scala.collection.mutable
10+
def maxLevelSum(root: TreeNode): Int = {
11+
val array = mutable.ArrayBuffer.empty[mutable.ArrayBuffer[Int]]
12+
def bfs(node: TreeNode, level: Int): Unit = {
13+
if (node != null) {
14+
if (array.size <= level) {
15+
array.addOne(mutable.ArrayBuffer.empty)
16+
}
17+
array(level).addOne(node.value)
18+
bfs(node.left, level + 1)
19+
bfs(node.right, level + 1)
20+
}
21+
}
22+
bfs(root, 0)
23+
array.map(_.sum).zipWithIndex.maxBy(a => a._1)._2 + 1
24+
}
25+
}
26+
27+
28+
val tree1 = new TreeNode(1,
29+
new TreeNode(7,
30+
new TreeNode(7),
31+
new TreeNode(-8),
32+
),
33+
new TreeNode(0)
34+
)
35+
36+
Solution.maxLevelSum(tree1)

0 commit comments

Comments
 (0)