2

#yyds干货盘点# leetcode算法题:奇偶链表

 2 years ago
source link: https://blog.51cto.com/u_13321676/5582209
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

#yyds干货盘点# leetcode算法题:奇偶链表

精选 原创

灰太狼_cxh 2022-08-16 15:00:29 博主文章分类:leetcode ©著作权

文章标签 数组 代码实现 空间复杂度 文章分类 Java 编程语言 阅读数211

给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。

第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。

请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。

你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。

输入: head = [1,2,3,4,5]

输出: [1,3,5,2,4]

输入: head = [2,1,3,5,6,4,7]

输出: [2,3,6,7,1,5,4]

代码实现:

class Solution {
public ListNode oddEvenList(ListNode head) {
if (head == null) {
return head;
}
ListNode evenHead = head.next;
ListNode odd = head, even = evenHead;
while (even != null && even.next != null) {
odd.next = even.next;
odd = odd.next;
even.next = odd.next;
even = even.next;
}
odd.next = evenHead;
return head;
}
}

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK