| 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}
 |