P187. 奇偶链表

leetcode 328 lintcode 1292 链表 讨论

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

这个题目说的是,给你一个单链表,你要重新排列这个链表,把奇数节点全都放到链表前面,偶数节点全都放到链表后面,并且奇数节点内和偶数节点内的节点相对顺序保持不变。

注意,这里说的奇数和偶数,指的是节点的位置,而不是节点值。并且把头节点看作第一个节点,也就是说头节点是奇数节点。这个题目的时间复杂度要求是 O(n),空间复杂度要求是 O(1)。

比如说,给你的链表是:

0 -> 1 -> 2 -> 4 -> 8

奇数位置上的节点是:

[0, 2, 8]

偶数位置上的节点是:

[1, 4]

因此重新排列后的链表就是:

0 -> 2 -> 8 -> 1 -> 4

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。