剑指 Offer 32 - III. 从上到下打印二叉树 III
xxxixxxx

剑指 Offer 32 - III. 从上到下打印二叉树 III

  • 时间复杂度
    O(n) 每个节点访问一次
  • 空间复杂度
    O(n)
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
func levelOrder(_ root: TreeNode?) -> [[Int]] {
guard let root = root else { return [] }
var ans: [[Int]] = []
var listTree: [TreeNode] = [root]

var isLR = false
while !listTree.isEmpty {
var valList: [Int] = []
var tempTree: [TreeNode] = []
isLR = !isLR
for tree in listTree {
if tree.left != nil {
tempTree.append(tree.left!)
}
if tree.right != nil {
tempTree.append(tree.right!)
}
if isLR {
valList.append(tree.val)
} else {
valList.insert(tree.val, at: 0)
}
}
listTree = tempTree
ans.append(valList)
}
return ans
}
  • Post title:剑指 Offer 32 - III. 从上到下打印二叉树 III
  • Post author:xxxixxxx
  • Create time:2021-02-24 23:19:00
  • Post link:https://xxxixxx.github.io/2021/02/24/2000-020-剑指 Offer 32 - III. 从上到下打印二叉树 III/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
 Comments