题目介绍

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。

请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。

示例 1:
输入: 1->2->3->4->5->NULL
输出: 1->3->5->2->4->NULL示例 2:
输入: 2->1->3->5->6->4->7->NULL
输出: 2->3->6->7->1->5->4->NULL

说明: 应当保持奇数节点和偶数节点的相对顺序。链表的第一个节点视为奇数节点,第二个节点视为偶数节点,以此类推。

解题思路

可以建立两个node,一个作为奇数node,一个作为偶数node,最后把两个node拼接起来就好,这样就可以得到奇数节点编号和偶数节点编号依次按照顺序输出。

源代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode(int x) : val(x), next(NULL) {}* };*/
class Solution {
public:ListNode* oddEvenList(ListNode* head) {if(head==NULL||head->next==NULL){return head;}//注意:这里需要一个判断语句来判断head指向的节点是否为空。ListNode *odd=head;ListNode *even=head->next;ListNode *cur=even;while(even!=NULL&&even->next!=NULL){odd->next=even->next;odd=odd->next;even->next=odd->next;even=even->next;}odd->next=cur;       return head;}
};

leetcode之奇偶链表相关推荐

  1. Java实现 LeetCode 328 奇偶链表

    328. 奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂 ...

  2. 35. Leetcode 328. 奇偶链表 (链表-双指针)

    给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表.第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推.请注意,偶数组 ...

  3. leetcode 328. 奇偶链表(双指针)

    给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂度应为 O(1),时 ...

  4. LeetCode 328.奇偶链表

    题目(20¥) 题目地址:https://leetcode-cn.com/problems/odd-even-linked-list/ 题解 oddHead 节点即 head 节点,evenHead ...

  5. leetcode算法题--奇偶链表

    原理链接:https://leetcode-cn.com/problems/odd-even-linked-list/ 1.双指针 ListNode* oddEvenList(ListNode* he ...

  6. Leetcode每日一题2020.11.13第328题:奇偶链表

    328.奇偶链表 题目描述 思路.算法及代码实现 方法:分离节点后合并 如果链表为空,则直接返回链表. 对于原始链表,每个节点都是奇数节点或偶数节点.头节点是奇数节点,头节点的后一个节点是偶数节点,相 ...

  7. C#LeetCode刷题-链表

    链表篇 # 题名 刷题 通过率 难度 2 两数相加   29.0% 中等 19 删除链表的倒数第N个节点   29.4% 中等 21 合并两个有序链表 C#LeetCode刷题之#21-合并两个有序链 ...

  8. leetcode刷题链表

    leetcode刷题链表 反转链表Ⅱ 题目描述将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n)O(n),空间复杂度 O(1)O(1).例如: 给出的链表为9 ...

  9. python 奇偶链表

    |奇偶链表 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂度应为 ...

  10. LeetCode 92反转链表Ⅱ93复制ip地址94二叉树的中序遍历

    微信搜一搜:bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注回复进群即可加入力扣打卡群,欢迎 ...

最新文章

  1. 如何利用大数据指导市场营销
  2. 效率 qt_Qt开发之Go篇(三)
  3. python处理表格数据-python通过xrld库读取表格数据
  4. 关于 Python 列表操作,最常见问答Top10
  5. Microsoft My Phone试用手记
  6. 优化案例(part5)--sparse subspace clustering via Low-Rank structure propagation
  7. python opencv 教程_OpenCV-Python系列教程介绍
  8. 外卖小哥高考623分!查分后淡定送外卖
  9. java jdk的作用_Java JDK环境配置及配置作用说明
  10. 数字转字符串的精度问题
  11. 产品经理(PM)的工作流程
  12. 面试:Android数据库升级给表增加字段
  13. 用PS给证件照换底色
  14. linux centos 权限审核 polkitd进程 简介
  15. facebuilder免费版_Face Blender(人脸混合器)V2018 最新免费版
  16. Latex 大括号错位显示
  17. js 判断一个 object 对象是否为空
  18. 微信7.0.10正式版来了!朋友圈斗图彻底关闭了!
  19. javascript入门及基础语法结构
  20. 如何获取网络协议的协议号

热门文章

  1. Bootstrap 导航栏设置
  2. iOS 并发编程之 Operation Queues
  3. 浅谈压缩感知(二十二):压缩感知重构算法之正则化正交匹配追踪(ROMP)
  4. JVM--Garbage First
  5. 使用强类型DataSet增加数据并获取自动增长的ID
  6. 驗證類javascript
  7. 教你一秒理解setInterval与setTimeout的使用和区别
  8. Maven中DependencyManagement和Dependencies区别
  9. 每天一道剑指offer-数组中出现次数超过一半的数字
  10. java 字符串和整型的相互转换