29 lines
387 B
Go
29 lines
387 B
Go
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
|