农场里有一群牛,每头牛都有一个编号。现在农场主想要按照编号位置的奇偶性重排牛群的顺序,要求将所有编号位置为奇数的牛放在前面,编号位置为偶数的牛放在后面。同时,偶数部分和奇数部分内部的相对顺序应该与输入时保持一致。 请你实现一个函数 ListNode* reorderCows(ListNode* head),接收一个链表的头节点 head 作为参数,表示牛群的初始编号顺序。函数返回一个链表的头节点,表示重排后的牛群编号顺序。 你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。
示例1

输入

{1, 2, 3, 4, 5}

输出

{1,3,5,2,4}
示例2

输入

{2, 1, 3, 5, 6, 4, 7}

输出

{2,3,6,7,1,5,4}

备注:
n == 链表中的节点数0 -10^6
加载中...