奇偶链表
2018-12-04 本文已影响1人
飞白非白
// 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。
//请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而
//不是节点的值的奇偶性。 应当保持奇数节点和偶数节点的相对顺序。
//链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推。
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
if (!head || !head->next) return head;
ListNode *odd = head, *even = head->next,*even_head = head->next;
while (even && even->next) {
odd->next = odd->next->next;
even->next = even->next->next;
odd = odd->next;
even = even->next;
}
odd->next = even_head;
return head;
}
};