Skip to content

Commit c88d2ca

Browse files
author
Yi Gu
committed
[LinkedList] optimize Solution for Swap Nodes in Pairs
1 parent c6c635d commit c88d2ca

File tree

1 file changed

+11
-18
lines changed

1 file changed

+11
-18
lines changed

LinkedList/SwapNodesInPairs.swift

+11-18
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,22 @@
1616

1717
class SwapNodesInPairs {
1818
func swapPairs(head: ListNode?) -> ListNode? {
19-
if head == nil || head!.next == nil {
20-
return head
21-
}
22-
2319
let dummy = ListNode(0)
2420
dummy.next = head
25-
var prev = dummy
26-
var fir = dummy.next
27-
var sec = fir!.next
2821

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
3128

32-
prev.next = sec
33-
sec!.next = fir
34-
fir!.next = next
29+
prev!.next = next
30+
next!.next = current
31+
current!.next = post
3532

36-
if next == nil {
37-
break
38-
}
39-
prev = fir!
40-
fir = next
41-
sec = next!.next
33+
prev = current
34+
current = post
4235
}
4336

4437
return dummy.next

0 commit comments

Comments
 (0)