forked from neetcode-gh/leetcode
- Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path0143-reorder-list.go
43 lines (36 loc) · 827 Bytes
/
0143-reorder-list.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
funcreorderList(head*ListNode) {
slow:=head
fast:=head.Next
forfast!=nil&&fast.Next!=nil {
fast=fast.Next.Next
slow=slow.Next
}
reversed:=reverse(slow.Next)
slow.Next=nil
curr:=head
forcurr!=nil&&reversed!=nil {
next:=curr.Next
revNext:=reversed.Next
curr.Next=reversed
reversed.Next=next
curr=next
reversed=revNext
}
}
funcreverse(node*ListNode) *ListNode {
varprev, curr*ListNode=nil, node
forcurr!=nil {
next:=curr.Next
curr.Next=prev
prev=curr
curr=next
}
returnprev
}