File tree 2 files changed +99
-0
lines changed
lcof2/剑指 Offer II 044. 二叉树每层的最大值
2 files changed +99
-0
lines changed Original file line number Diff line number Diff line change @@ -232,6 +232,58 @@ func largestValues(root *TreeNode) []int {
232
232
}
233
233
```
234
234
235
+ #### Swift
236
+
237
+ ``` swift
238
+ /* class TreeNode {
239
+ * var val: Int
240
+ * var left: TreeNode?
241
+ * var right: TreeNode?
242
+ * init() {
243
+ * self.val = 0
244
+ * self.left = nil
245
+ * self.right = nil
246
+ * }
247
+ * init(_ val: Int) {
248
+ * self.val = val
249
+ * self.left = nil
250
+ * self.right = nil
251
+ * }
252
+ * init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
253
+ * self.val = val
254
+ * self.left = left
255
+ * self.right = right
256
+ * }
257
+ * }
258
+ */
259
+
260
+ class Solution {
261
+ func largestValues (_ root : TreeNode? ) -> [Int ] {
262
+ var ans = [Int ]()
263
+ guard let root = root else {
264
+ return ans
265
+ }
266
+ var q = [TreeNode]()
267
+ q.append (root)
268
+ while ! q.isEmpty {
269
+ var t = Int .min
270
+ for _ in 0 ..< q.count {
271
+ let node = q.removeFirst ()
272
+ t = max (t, node.val )
273
+ if let left = node.left {
274
+ q.append (left)
275
+ }
276
+ if let right = node.right {
277
+ q.append (right)
278
+ }
279
+ }
280
+ ans.append (t)
281
+ }
282
+ return ans
283
+ }
284
+ }
285
+ ```
286
+
235
287
<!-- tabs: end -->
236
288
237
289
<!-- solution: end -->
Original file line number Diff line number Diff line change
1
+ /* class TreeNode {
2
+ * var val: Int
3
+ * var left: TreeNode?
4
+ * var right: TreeNode?
5
+ * init() {
6
+ * self.val = 0
7
+ * self.left = nil
8
+ * self.right = nil
9
+ * }
10
+ * init(_ val: Int) {
11
+ * self.val = val
12
+ * self.left = nil
13
+ * self.right = nil
14
+ * }
15
+ * init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
16
+ * self.val = val
17
+ * self.left = left
18
+ * self.right = right
19
+ * }
20
+ * }
21
+ */
22
+
23
+ class Solution {
24
+ func largestValues( _ root: TreeNode ? ) -> [ Int ] {
25
+ var ans = [ Int] ( )
26
+ guard let root = root else {
27
+ return ans
28
+ }
29
+ var q = [ TreeNode] ( )
30
+ q. append ( root)
31
+ while !q. isEmpty {
32
+ var t = Int . min
33
+ for _ in 0 ..< q. count {
34
+ let node = q. removeFirst ( )
35
+ t = max ( t, node. val)
36
+ if let left = node. left {
37
+ q. append ( left)
38
+ }
39
+ if let right = node. right {
40
+ q. append ( right)
41
+ }
42
+ }
43
+ ans. append ( t)
44
+ }
45
+ return ans
46
+ }
47
+ }
You can’t perform that action at this time.
0 commit comments