leetcode328奇偶链表

思路:先将寄链表连接起来;再将偶链表连接起来;最后将寄链表和偶链表一起连起来。

首先需要一个指针结构体去记录下偶链表的表头。最后才能将两个链表连接起来。

 

复制代码
ListNode* odd=head;
LisrNode* even=head->next;
ListNode* evenhead=head->next;//必须这么做,每个链表表头必须用另外的一个结构体保存,不能和任何的其他链表混合
while(even->next){
    odd->next=even->next;
    odd=odd->next;
    if(odd->next){
        even->next=odd->next;
        even=eve->next;
    }
}

复制代码
//连接之前要将偶链表的最后尾部置为空指针
even->next=nullptr;
odd->next=evenhead;

当使用一个空指针的next时,会报错。

改进时间版,少用if

while(even&&even->next){
    odd->next=even->next;
    odd=odd->next;
    even->next=odd->next;
    even=even->next;
}
//相当于三个节点为一组执行这样的操作
//最后的even一定是空指针,不用最后将尾部置为空指针

 

posted @   iu本u  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示