Skip to content

Commit 889e495

Browse files
authored
Merge pull request halfrost#140 from hanlins/24/one-liner
Use a concise solution for problem 24 swap nodes in pairs
2 parents 11f3e13 + 22e9be3 commit 889e495

File tree

1 file changed

+4
-25
lines changed

1 file changed

+4
-25
lines changed

leetcode/0024.Swap-Nodes-in-Pairs/24. Swap Nodes in Pairs.go

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,9 @@ type ListNode = structures.ListNode
1616
*/
1717

1818
func swapPairs(head *ListNode) *ListNode {
19-
if head == nil || head.Next == nil {
20-
return head
19+
dummy := &ListNode{Next: head}
20+
for pt := dummy; pt != nil && pt.Next != nil && pt.Next.Next != nil; {
21+
pt, pt.Next, pt.Next.Next, pt.Next.Next.Next = pt.Next, pt.Next.Next, pt.Next.Next.Next, pt.Next
2122
}
22-
s := head.Next
23-
var behind *ListNode
24-
for head.Next != nil {
25-
headNext := head.Next
26-
if behind != nil && behind.Next != nil {
27-
behind.Next = headNext
28-
}
29-
var next *ListNode
30-
if head.Next.Next != nil {
31-
next = head.Next.Next
32-
}
33-
if head.Next.Next != nil {
34-
head.Next = next
35-
} else {
36-
head.Next = nil
37-
}
38-
headNext.Next = head
39-
behind = head
40-
if head.Next != nil {
41-
head = next
42-
}
43-
}
44-
return s
23+
return dummy.Next
4524
}

0 commit comments

Comments
 (0)