package q328 type ListNode struct { Val int Next *ListNode } func oddEvenList(head *ListNode) *ListNode { odd := &ListNode{} even := &ListNode{} pO, pE := odd, even i := 0 for p := head; p != nil; p = p.Next { i++ if i%2 == 0 { pE.Next = p pE = p } else { pO.Next = p pO = p } } pE.Next = nil pO.Next = even.Next return odd.Next } var _ = oddEvenList