思路:先将寄链表连接起来;再将偶链表连接起来;最后将寄链表和偶链表一起连起来。
首先需要一个指针结构体去记录下偶链表的表头。最后才能将两个链表连接起来。
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一定是空指针,不用最后将尾部置为空指针
标签:even,奇偶,head,next,链表,leetcode328,odd,指针 From: https://www.cnblogs.com/wangkaixin-yy/p/17544879.html