问题:
方法:
使用dfs即可,在递归的过程中要传递level,对相同level的节点添加到相同list,遍历所有节点后即可以得到最终的结果。
package com.eric.leetcode
class BinaryTreeLevelOrderTraversal {
val result = mutableMapOf<Int, MutableList<Int>>()
fun levelOrder(root: TreeNode?): List<List<Int>> {
dfs(root, 0)
return result.values.toList()
}
private fun dfs(root: TreeNode?, level: Int) {
if (root == null) {
return
}
val list = result.getOrDefault(level, mutableListOf())
list.add(root.`val`)
result[level] = list
dfs(root.left, level + 1)
dfs(root.right, level + 1)
}
}
有问题随时沟通
网友评论