File tree 2 files changed +95
-0
lines changed
lcof2/剑指 Offer II 046. 二叉树的右侧视图
2 files changed +95
-0
lines changed Original file line number Diff line number Diff line change @@ -200,6 +200,56 @@ func rightSideView(root *TreeNode) []int {
200
200
}
201
201
```
202
202
203
+ #### Swift
204
+
205
+ ``` swift
206
+ /* class TreeNode {
207
+ * var val: Int
208
+ * var left: TreeNode?
209
+ * var right: TreeNode?
210
+ * init() {
211
+ * self.val = 0
212
+ * self.left = nil
213
+ * self.right = nil
214
+ * }
215
+ * init(_ val: Int) {
216
+ * self.val = val
217
+ * self.left = nil
218
+ * self.right = nil
219
+ * }
220
+ * init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
221
+ * self.val = val
222
+ * self.left = left
223
+ * self.right = right
224
+ * }
225
+ * }
226
+ */
227
+
228
+ class Solution {
229
+ func rightSideView (_ root : TreeNode? ) -> [Int ] {
230
+ var ans = [Int ]()
231
+ guard let root = root else {
232
+ return ans
233
+ }
234
+ var q = [TreeNode]()
235
+ q.append (root)
236
+ while ! q.isEmpty {
237
+ ans.append (q[0 ].val )
238
+ for _ in 0 ..< q.count {
239
+ let node = q.removeFirst ()
240
+ if let right = node.right {
241
+ q.append (right)
242
+ }
243
+ if let left = node.left {
244
+ q.append (left)
245
+ }
246
+ }
247
+ }
248
+ return ans
249
+ }
250
+ }
251
+ ```
252
+
203
253
<!-- tabs: end -->
204
254
205
255
<!-- 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 rightSideView( _ 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
+ ans. append ( q [ 0 ] . val)
33
+ for _ in 0 ..< q. count {
34
+ let node = q. removeFirst ( )
35
+ if let right = node. right {
36
+ q. append ( right)
37
+ }
38
+ if let left = node. left {
39
+ q. append ( left)
40
+ }
41
+ }
42
+ }
43
+ return ans
44
+ }
45
+ }
You can’t perform that action at this time.
0 commit comments