328. Odd Even Linked List(链表)

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
    }
};

猜你喜欢

转载自blog.csdn.net/tangyuanzong/article/details/80153494