[链表]leetcode328:奇偶链表(medium)

编程入门 行业动态 更新时间:2024-10-26 21:24:11

[<a href=https://www.elefans.com/category/jswz/34/1769662.html style=链表]leetcode328:奇偶链表(medium)"/>

[链表]leetcode328:奇偶链表(medium)

题目:

题解:

  • 思路:很简单,原地算法,直接遍历改变奇偶节点之间的链接就好了。
  • 1)每次循环,将奇数节点链接到偶数节点的next节点,同时更新偶数节点;偶数节点链接奇数节点的next节点,同时更新偶数节点。
  • 2)在偶数节点为尾节点或者空节点时,循环退出。这时需要把奇数节点的尾节点链接上偶数节点的头节点即可,这样就完成重装链表了。

代码如下:

class Solution {
public://思路:原地算法,时间复杂度O(n),空间复杂度O(1)ListNode* oddEvenList(ListNode* head) {//头节点为空或者只有一个节点,直接返回head节点if(!head||!head->next)return head;//奇数节点、偶数节点以及保存偶数节点的头节点的初始化ListNode *odd=head,*even=head->next,*evenHead=even;while(even&&even->next){//even为尾节点或者尾节点时,循环退出//奇数节点链接偶数节点的next节点,同时更新偶数节点odd->next=even->next;odd=odd->next;//偶数节点链接奇数节点的next节点,同时更新偶数节点even->next=odd->next;even=even->next;}//奇数节点的尾节点链接偶数节点的头节点odd->next=evenHead;return head;}
};

更多推荐

[链表]leetcode328:奇偶链表(medium)

本文发布于:2023-07-28 18:55:15,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1280257.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:链表   奇偶   medium

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!