Skip to content

Commit 044bc10

Browse files
authored
Merge branch 'doocs:main' into main
2 parents df43a34 + c2b7232 commit 044bc10

File tree

1,585 files changed

+36406
-31022
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,585 files changed

+36406
-31022
lines changed

images/starcharts.svg

Lines changed: 25675 additions & 25575 deletions
Loading

lcci/02.02.Kth Node From End of List/README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,40 @@ var kthToLast = function (head, k) {
203203
};
204204
```
205205

206+
```swift
207+
/**
208+
* Definition for singly-linked list.
209+
* public class ListNode {
210+
* var val: Int
211+
* var next: ListNode?
212+
* init(_ x: Int, _ next: ListNode? = nil) {
213+
* self.val = x
214+
* self.next = next
215+
* }
216+
* }
217+
*/
218+
219+
class Solution {
220+
func kthToLast(_ head: ListNode?, _ k: Int) -> Int {
221+
var slow = head
222+
var fast = head
223+
var k = k
224+
225+
while k > 0 {
226+
fast = fast?.next
227+
k -= 1
228+
}
229+
230+
while fast != nil {
231+
slow = slow?.next
232+
fast = fast?.next
233+
}
234+
235+
return slow?.val ?? 0
236+
}
237+
}
238+
```
239+
206240
<!-- tabs:end -->
207241

208242
<!-- end -->

lcci/02.02.Kth Node From End of List/README_EN.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,40 @@ var kthToLast = function (head, k) {
205205
};
206206
```
207207

208+
```swift
209+
/**
210+
* Definition for singly-linked list.
211+
* public class ListNode {
212+
* var val: Int
213+
* var next: ListNode?
214+
* init(_ x: Int, _ next: ListNode? = nil) {
215+
* self.val = x
216+
* self.next = next
217+
* }
218+
* }
219+
*/
220+
221+
class Solution {
222+
func kthToLast(_ head: ListNode?, _ k: Int) -> Int {
223+
var slow = head
224+
var fast = head
225+
var k = k
226+
227+
while k > 0 {
228+
fast = fast?.next
229+
k -= 1
230+
}
231+
232+
while fast != nil {
233+
slow = slow?.next
234+
fast = fast?.next
235+
}
236+
237+
return slow?.val ?? 0
238+
}
239+
}
240+
```
241+
208242
<!-- tabs:end -->
209243

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

lcci/02.03.Delete Middle Node/README.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,26 @@ var deleteNode = function (node) {
114114
};
115115
```
116116

117+
```swift
118+
/**
119+
* public class ListNode {
120+
* var val: Int
121+
* var next: ListNode?
122+
* init(_ x: Int) {
123+
* self.val = x
124+
* self.next = nil
125+
* }
126+
* }
127+
*/
128+
class Solution {
129+
func deleteNode(_ node: ListNode?) {
130+
guard let node = node, let next = node.next else { return }
131+
node.val = next.val
132+
node.next = next.next
133+
}
134+
}
135+
```
136+
117137
<!-- tabs:end -->
118138

119139
<!-- end -->

lcci/02.03.Delete Middle Node/README_EN.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,26 @@ var deleteNode = function (node) {
109109
};
110110
```
111111

112+
```swift
113+
/**
114+
* public class ListNode {
115+
* var val: Int
116+
* var next: ListNode?
117+
* init(_ x: Int) {
118+
* self.val = x
119+
* self.next = nil
120+
* }
121+
* }
122+
*/
123+
class Solution {
124+
func deleteNode(_ node: ListNode?) {
125+
guard let node = node, let next = node.next else { return }
126+
node.val = next.val
127+
node.next = next.next
128+
}
129+
}
130+
```
131+
112132
<!-- tabs:end -->
113133

114134
<!-- end -->
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/**
2+
* public class ListNode {
3+
* var val: Int
4+
* var next: ListNode?
5+
* init(_ x: Int) {
6+
* self.val = x
7+
* self.next = nil
8+
* }
9+
* }
10+
*/
11+
class Solution {
12+
func deleteNode(_ node: ListNode?) {
13+
guard let node = node, let next = node.next else { return }
14+
node.val = next.val
15+
node.next = next.next
16+
}
17+
}

lcci/02.04.Partition List/README.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,44 @@ function partition(head: ListNode | null, x: number): ListNode | null {
201201
}
202202
```
203203

204+
```swift
205+
/** public class ListNode {
206+
* var val: Int
207+
* var next: ListNode?
208+
* init(_ x: Int) {
209+
* self.val = x
210+
* self.next = nil
211+
* }
212+
* }
213+
*/
214+
215+
class Solution {
216+
func partition(_ head: ListNode?, _ x: Int) -> ListNode? {
217+
let leftDummy = ListNode(0)
218+
let rightDummy = ListNode(0)
219+
var left = leftDummy
220+
var right = rightDummy
221+
var head = head
222+
223+
while let current = head {
224+
if current.val < x {
225+
left.next = current
226+
left = left.next!
227+
} else {
228+
right.next = current
229+
right = right.next!
230+
}
231+
head = head?.next
232+
}
233+
234+
right.next = nil
235+
left.next = rightDummy.next
236+
237+
return leftDummy.next
238+
}
239+
}
240+
```
241+
204242
<!-- tabs:end -->
205243

206244
<!-- end -->

lcci/02.04.Partition List/README_EN.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,44 @@ function partition(head: ListNode | null, x: number): ListNode | null {
179179
}
180180
```
181181

182+
```swift
183+
/** public class ListNode {
184+
* var val: Int
185+
* var next: ListNode?
186+
* init(_ x: Int) {
187+
* self.val = x
188+
* self.next = nil
189+
* }
190+
* }
191+
*/
192+
193+
class Solution {
194+
func partition(_ head: ListNode?, _ x: Int) -> ListNode? {
195+
let leftDummy = ListNode(0)
196+
let rightDummy = ListNode(0)
197+
var left = leftDummy
198+
var right = rightDummy
199+
var head = head
200+
201+
while let current = head {
202+
if current.val < x {
203+
left.next = current
204+
left = left.next!
205+
} else {
206+
right.next = current
207+
right = right.next!
208+
}
209+
head = head?.next
210+
}
211+
212+
right.next = nil
213+
left.next = rightDummy.next
214+
215+
return leftDummy.next
216+
}
217+
}
218+
```
219+
182220
<!-- tabs:end -->
183221

184222
<!-- end -->
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/** public class ListNode {
2+
* var val: Int
3+
* var next: ListNode?
4+
* init(_ x: Int) {
5+
* self.val = x
6+
* self.next = nil
7+
* }
8+
* }
9+
*/
10+
11+
class Solution {
12+
func partition(_ head: ListNode?, _ x: Int) -> ListNode? {
13+
let leftDummy = ListNode(0)
14+
let rightDummy = ListNode(0)
15+
var left = leftDummy
16+
var right = rightDummy
17+
var head = head
18+
19+
while let current = head {
20+
if current.val < x {
21+
left.next = current
22+
left = left.next!
23+
} else {
24+
right.next = current
25+
right = right.next!
26+
}
27+
head = head?.next
28+
}
29+
30+
right.next = nil
31+
left.next = rightDummy.next
32+
33+
return leftDummy.next
34+
}
35+
}

0 commit comments

Comments
 (0)