File tree 1 file changed +11
-18
lines changed
1 file changed +11
-18
lines changed Original file line number Diff line number Diff line change 16
16
17
17
class SwapNodesInPairs {
18
18
func swapPairs( head: ListNode ? ) -> ListNode ? {
19
- if head == nil || head!. next == nil {
20
- return head
21
- }
22
-
23
19
let dummy = ListNode ( 0 )
24
20
dummy. next = head
25
- var prev = dummy
26
- var fir = dummy. next
27
- var sec = fir!. next
28
21
29
- while sec != nil {
30
- let next = sec!. next
22
+ var prev : ListNode ? = dummy
23
+ var current = dummy. next
24
+
25
+ while current != nil && current!. next != nil {
26
+ let next = current!. next
27
+ let post = current!. next!. next
31
28
32
- prev. next = sec
33
- sec !. next = fir
34
- fir !. next = next
29
+ prev! . next = next
30
+ next !. next = current
31
+ current !. next = post
35
32
36
- if next == nil {
37
- break
38
- }
39
- prev = fir!
40
- fir = next
41
- sec = next!. next
33
+ prev = current
34
+ current = post
42
35
}
43
36
44
37
return dummy. next
You can’t perform that action at this time.
0 commit comments