题解 | #链表的奇偶重排#
链表的奇偶重排
http://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3
/**
- struct ListNode {
- int val;
- struct ListNode *next;
- ListNode(int x) : val(x), next(nullptr) {}
- };
/
class Solution {
public:
/*
-
代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
-
@param head ListNode类
-
@return ListNode类 / ListNode oddEvenList(ListNode* head) { // write code here if(head == nullptr) return nullptr; ListNode *pvHead1 = new ListNode(-1); pvHead1->next = head; ListNode *pvHead2 = new ListNode(-1); pvHead2->next = head->next; ListNode *p1 = head; ListNode *ptail1 = nullptr; ListNode *p2 = head->next; while(p1 != nullptr && p2 != nullptr){ ptail1 = p1; p1->next = p2->next; p1 = p1->next; if(p1){ p2->next = p1->next; p2 = p2->next; }
}
if(p1 == nullptr){ ptail1->next = pvHead2->next; }else{ p1->next = pvHead2->next; }
return pvHead1->next; } };
-