| 1234567891011121314151617181920212223242526272829 | 
							- /**
 
-  * Definition for singly-linked list.
 
-  * type ListNode struct {
 
-  *     Val int
 
-  *     Next *ListNode
 
-  * }
 
-  */
 
- func oddEvenList(head *ListNode) *ListNode {
 
- 	if head == nil || head.Next == nil {
 
- 		return head
 
- 	}
 
- 	odd, even := head, head.Next
 
- 	prev, slow, fast := odd, odd, even
 
- 	for fast != nil && slow != nil {
 
- 		slow.Next = fast.Next
 
- 		if fast.Next != nil {
 
- 			fast.Next = fast.Next.Next
 
- 		}
 
- 		fast = fast.Next
 
- 		prev = slow
 
- 		slow = slow.Next
 
- 	}
 
- 	if slow == nil {
 
- 		prev.Next = even
 
- 	} else {
 
- 		slow.Next = even
 
- 	}
 
- 	return odd
 
- }
 
 
  |