Odd Even Linked List
ID: 328; medium
Solution 1
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func oddEvenList(head *ListNode) *ListNode {
oddHead, evenHead := &ListNode{Val: 0}, &ListNode{Val: 0}
oddRunner, evenRunner, index := oddHead, evenHead, 1
for head != nil {
if index % 2 != 0 {
oddRunner.Next = head
oddRunner = oddRunner.Next
} else {
evenRunner.Next = head
evenRunner = evenRunner.Next
}
index++
head = head.Next
}
oddRunner.Next = evenHead.Next
evenRunner.Next = nil
return oddHead.Next
}Solution 2
Last updated
Was this helpful?