package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ func oddEvenList( head *ListNode ) *ListNode { if head == nil || head.Next == nil { return head } oddPointer := head evenPointer := head.Next list1 := &ListNode{Val: 0} list2 := &ListNode{Val: 0} tmp1 := list1 tmp2 := list2 for oddPointer != nil && oddPointer.Next != nil && evenPointer != nil && evenPointer.Next != nil { tmp1.Next = &ListNode{Val: oddPointer.Val} tmp2.Next = &ListNode{Val: evenPointer.Val} tmp1 = tmp1.Next tmp2 = tmp2.Next oddPointer = oddPointer.Next.Next evenPointer = evenPointer.Next.Next } if oddPointer != nil { tmp1.Next = oddPointer tmp1 = tmp1.Next } if evenPointer != nil { tmp2.Next = evenPointer } tmp1.Next = list2.Next return list1.Next }