题解 | #链表的奇偶重排#
链表的奇偶重排
https://www.nowcoder.com/practice/02bf49ea45cd486daa031614f9bd6fc3
解题思路
- 遍历链表,转换为数组;
- 利用数组的性质获取到奇数位和偶数位的元素;
- 先创建奇数位的链表,再创建偶数位的链表,合起来。
- 时间复杂度和空间复杂度都为O(N)。
class Solution: def oddEvenList(self , head: ListNode) -> ListNode: # write code here p = head a = [] while p: a.append(p.val) p = p.next b = a[::2] c = a[1::2] newL = ListNode(-1) res = newL for i in b: newL.next = ListNode(i) newL = newL.next for i in c: newL.next = ListNode(i) newL = newL.next newL.next = None return res.next