题解 | #链表的奇偶重排#
链表的奇偶重排
https://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3
package main import . "nc_tools" /* * type ListNode struct{ * Val int * Next *ListNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param head ListNode类 * @return ListNode类 */ func oddEvenList(head *ListNode) *ListNode { // write code here if head==nil{ return nil } var odd, even, even_head *ListNode //双指针,隔一步。奇数为时后数位的下一步,偶数位是奇数位的下一步,不用考虑为空,会赋值空 odd = head even = head.Next even_head = head.Next for even != nil && even.Next != nil { odd.Next = even.Next odd = even.Next even.Next = odd.Next even = odd.Next } odd.Next = even_head return head }