1.题目和原题链接
2.解题思路
1.当链表为空或者只有一个节点时直接返回
2.除上述情况外,再分类讨论,如下图所示

3.代码
ListNode* oddEvenList(ListNode* head) {
if(head==NULL||head->next==NULL)//0,1,2个节点直接返回
return head;
ListNode* odd=head;
ListNode* even=head->next;
ListNode* rat_even=even;
ListNode* prev=odd;
while(odd&&even)
{
prev=odd;
odd->next=odd->next->next;
odd=odd->next;
if(even->next)//防止越界
{
even->next=even->next->next;
even=even->next;
}
}
if(odd)
odd->next=rat_even;
else
prev->next=rat_even;
return head;
}
};
本文解析了如何通过迭代处理将给定链表转换为奇数节点在前,偶数节点在后的链表结构,包括边界条件和详细步骤。附带的C++代码展示了整个过程。

222

被折叠的 条评论
为什么被折叠?



