没啥好说的,顺着逻辑写就行

# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param head ListNode类 
# @return ListNode类
#
class Solution:
    def oddEvenList(self , head ):
        # write code here
        if not head or not head.next:
            return head

        dummy_odd = ListNode(0)
        dummy_even = ListNode(0)
        odd = head
        even = odd.next
        dummy_odd.next = odd
        dummy_even.next = even
        def display(node):
            while node:
                print(node.val)
                node = node.next
        while even:
            next_odd = even.next
            next_even = None
            if even.next:
                next_even = even.next.next
            odd.next = next_odd
            even.next = next_even
            if next_odd:
                odd = next_odd            
            even = next_even
        odd.next = dummy_even.next

        return dummy_odd.next