考研数据结构

奇偶链表

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;
    }
};

上一篇 下一篇

猜你喜欢

热点阅读