File tree 2 files changed +77
-0
lines changed
lcof/面试题32 - I. 从上到下打印二叉树
2 files changed +77
-0
lines changed Original file line number Diff line number Diff line change @@ -346,6 +346,47 @@ public class Solution {
346
346
}
347
347
```
348
348
349
+ #### Swift
350
+
351
+ ``` swift
352
+ /* public class TreeNode {
353
+ * var val: Int
354
+ * var left: TreeNode?
355
+ * var right: TreeNode?
356
+ * init(_ val: Int) {
357
+ * self.val = val
358
+ * self.left = nil
359
+ * self.right = nil
360
+ * }
361
+ * }
362
+ */
363
+
364
+ class Solution {
365
+ func levelOrder (_ root : TreeNode? ) -> [Int ] {
366
+ guard let root = root else {
367
+ return []
368
+ }
369
+
370
+ var queue: [TreeNode] = [root]
371
+ var result: [Int ] = []
372
+
373
+ while ! queue.isEmpty {
374
+ let node = queue.removeFirst ()
375
+ result.append (node.val )
376
+
377
+ if let left = node.left {
378
+ queue.append (left)
379
+ }
380
+ if let right = node.right {
381
+ queue.append (right)
382
+ }
383
+ }
384
+
385
+ return result
386
+ }
387
+ }
388
+ ```
389
+
349
390
<!-- tabs: end -->
350
391
351
392
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ /* public class TreeNode {
2
+ * var val: Int
3
+ * var left: TreeNode?
4
+ * var right: TreeNode?
5
+ * init(_ val: Int) {
6
+ * self.val = val
7
+ * self.left = nil
8
+ * self.right = nil
9
+ * }
10
+ * }
11
+ */
12
+
13
+ class Solution {
14
+ func levelOrder( _ root: TreeNode ? ) -> [ Int ] {
15
+ guard let root = root else {
16
+ return [ ]
17
+ }
18
+
19
+ var queue : [ TreeNode ] = [ root]
20
+ var result : [ Int ] = [ ]
21
+
22
+ while !queue. isEmpty {
23
+ let node = queue. removeFirst ( )
24
+ result. append ( node. val)
25
+
26
+ if let left = node. left {
27
+ queue. append ( left)
28
+ }
29
+ if let right = node. right {
30
+ queue. append ( right)
31
+ }
32
+ }
33
+
34
+ return result
35
+ }
36
+ }
You can’t perform that action at this time.
0 commit comments