Skip to content

Commit 071989e

Browse files
authored
feat: add swift implementation to lcof problem: No.22 (doocs#2881)
1 parent e129668 commit 071989e

File tree

2 files changed

+63
-0
lines changed

2 files changed

+63
-0
lines changed

lcof/面试题22. 链表中倒数第k个节点/README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,40 @@ public class Solution {
226226
}
227227
```
228228

229+
#### Swift
230+
231+
```swift
232+
/* public class ListNode {
233+
* var val: Int
234+
* var next: ListNode?
235+
* init(_ val: Int) {
236+
* self.val = val
237+
* self.next = nil
238+
* }
239+
* }
240+
*/
241+
242+
class Solution {
243+
func getKthFromEnd(_ head: ListNode?, _ k: Int) -> ListNode? {
244+
var slow = head
245+
var fast = head
246+
var k = k
247+
248+
while k > 0 {
249+
fast = fast?.next
250+
k -= 1
251+
}
252+
253+
while fast != nil {
254+
slow = slow?.next
255+
fast = fast?.next
256+
}
257+
258+
return slow
259+
}
260+
}
261+
```
262+
229263
<!-- tabs:end -->
230264

231265
<!-- solution:end -->
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* public class ListNode {
2+
* var val: Int
3+
* var next: ListNode?
4+
* init(_ val: Int) {
5+
* self.val = val
6+
* self.next = nil
7+
* }
8+
* }
9+
*/
10+
11+
class Solution {
12+
func getKthFromEnd(_ head: ListNode?, _ k: Int) -> ListNode? {
13+
var slow = head
14+
var fast = head
15+
var k = k
16+
17+
while k > 0 {
18+
fast = fast?.next
19+
k -= 1
20+
}
21+
22+
while fast != nil {
23+
slow = slow?.next
24+
fast = fast?.next
25+
}
26+
27+
return slow
28+
}
29+
}

0 commit comments

Comments
 (0)