跳过正文
  1. leetcode 题解/

328_奇偶链表

·57 字·1 分钟

类型:链表

    1. 奇偶链表 💛 ⭐

    https://leetcode-cn.com/problems/odd-even-linked-list/

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

    输入: 1->2->3->4->5->NULL 输出: 1->3->5->2->4->NULL

    💡 分离后合并

    将链表分离成奇偶两条链表。再首尾连接。

    class Solution:
        def oddEvenList(self, head: ListNode) -> ListNode:
            if not head:
                return head
    
            evenHead = head.next
            odd, even = head, evenHead
            while even and even.next:
                odd.next = even.next
                odd = odd.next
                even.next = odd.next
                even = even.next
            odd.next = evenHead
            return head

    时间复杂度:O(n),空间复杂度:O(1)