1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
func levelOrder(_ root: TreeNode?) -> [[Int]] { var result = [[Int]]()
levelOrderHelper(root, 0, &result)
return result }
private func levelOrderHelper(_ root: TreeNode?, _ depth: Int, _ result: inout [[Int]]) { guard let root = root else { return }
if !result.indices.contains(depth) { result.insert([], at: depth) }
result[depth].append(root.val) levelOrderHelper(root.left, depth + 1, &result) levelOrderHelper(root.right, depth + 1, &result) }
|