Skip to content

Commit 6ddbbfc

Browse files
authored
feat: add swift implementation to lcof2 problem: No.046 (#3061)
1 parent b89c772 commit 6ddbbfc

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

lcof2/剑指 Offer II 046. 二叉树的右侧视图/README.md

+50
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,56 @@ func rightSideView(root *TreeNode) []int {
200200
}
201201
```
202202

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+
203253
<!-- tabs:end -->
204254

205255
<!-- solution:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
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+
}

0 commit comments

Comments
 (0)