版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/tangyuanzong/article/details/80153494
https://leetcode.com/problems/odd-even-linked-list/description/
题目:将链表奇数位上的节点放到偶数位上的节点前面。
思路:分别构造两条链表:奇数位的链表,偶数位的链表,最后一个奇数位节点的下一个节点为偶数位节点的开头
空间复杂度O(1),时间复杂度O(n)
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
ListNode *odd , *even, *even_head;
if(!head) return head;
odd = head;
even = head->next;
even_head = even;
while( odd && even && even->next){
odd->next = even->next;
even->next = even->next->next;
odd = odd->next;
even = even->next;
}
odd->next = even_head;
return head;
}
};