/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* oddEvenList(ListNode* head) {
if(head == nullptr || head->next == nullptr)
{
return head;
}
ListNode* odd = head;
ListNode* even = head->next;
ListNode* cur = even;
while(odd && even)
{
if(even->next)
{
odd->next = even->next;
even->next = odd->next->next;
even = even->next;
odd = odd->next;
}
else
{
odd->next = cur;
return head;
}
}
odd->next = cur;
return head;
}
};
LEEDCODE 328奇偶链表
最新推荐文章于 2024-09-05 10:13:13 发布
该文章介绍了如何使用C++实现一个Solution类,用于将给定的单链表按照奇偶节点重新排序。算法首先检查链表是否为空或只有一个节点,然后通过迭代处理,将奇数节点连接到偶数节点之后,最后返回重构后的链表。
摘要由CSDN通过智能技术生成