Skip to content

Commit b89c772

Browse files
authored
feat: add swift implementation to lcof2 problem: No.045 (doocs#3060)
1 parent 7a8178e commit b89c772

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

lcof2/剑指 Offer II 045. 二叉树最底层最左边的值/README.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,56 @@ func findBottomLeftValue(root *TreeNode) int {
194194
}
195195
```
196196

197+
#### Swift
198+
199+
```swift
200+
/* class TreeNode {
201+
* var val: Int
202+
* var left: TreeNode?
203+
* var right: TreeNode?
204+
* init() {
205+
* self.val = 0
206+
* self.left = nil
207+
* self.right = nil
208+
* }
209+
* init(_ val: Int) {
210+
* self.val = val
211+
* self.left = nil
212+
* self.right = nil
213+
* }
214+
* init(_ val: Int, _ left: TreeNode?, _ right: TreeNode?) {
215+
* self.val = val
216+
* self.left = left
217+
* self.right = right
218+
* }
219+
* }
220+
*/
221+
222+
class Solution {
223+
func findBottomLeftValue(_ root: TreeNode?) -> Int {
224+
var q = [TreeNode]()
225+
q.append(root!)
226+
var ans = -1
227+
while !q.isEmpty {
228+
let n = q.count
229+
for i in 0..<n {
230+
let node = q.removeFirst()
231+
if i == 0 {
232+
ans = node.val
233+
}
234+
if let left = node.left {
235+
q.append(left)
236+
}
237+
if let right = node.right {
238+
q.append(right)
239+
}
240+
}
241+
}
242+
return ans
243+
}
244+
}
245+
```
246+
197247
<!-- tabs:end -->
198248

199249
<!-- solution:end -->
Lines changed: 45 additions & 0 deletions
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 findBottomLeftValue(_ root: TreeNode?) -> Int {
25+
var q = [TreeNode]()
26+
q.append(root!)
27+
var ans = -1
28+
while !q.isEmpty {
29+
let n = q.count
30+
for i in 0..<n {
31+
let node = q.removeFirst()
32+
if i == 0 {
33+
ans = node.val
34+
}
35+
if let left = node.left {
36+
q.append(left)
37+
}
38+
if let right = node.right {
39+
q.append(right)
40+
}
41+
}
42+
}
43+
return ans
44+
}
45+
}

0 commit comments

Comments
 (0)