Files
LeetCode-Go/leetcode/0328.Odd-Even-Linked-List/328. Odd Even Linked List.go
2020-08-07 17:06:53 +08:00

40 lines
651 B
Go

package leetcode
import (
"github.com/halfrost/LeetCode-Go/structures"
)
// ListNode define
type ListNode = structures.ListNode
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func oddEvenList(head *ListNode) *ListNode {
oddHead := &ListNode{Val: 0, Next: nil}
odd := oddHead
evenHead := &ListNode{Val: 0, Next: nil}
even := evenHead
count := 1
for head != nil {
if count%2 == 1 {
odd.Next = head
odd = odd.Next
} else {
even.Next = head
even = even.Next
}
head = head.Next
count++
}
even.Next = nil
odd.Next = evenHead.Next
return oddHead.Next
}