Given a singly linked list, group all odd nodes together followed by the even nodes. Please note here we are talking about the node number and not the value in the nodes.css
You should try to do it in place. The program should run in O(1) space complexity and O(nodes) time complexity.node
Example 1:ide
Input: Output: 1->2->3->4->5->NULL1->3->5->2->4->NULL
Example 2:spa
Input: 2 Output: ->1->3->5->6->4->7->NULL2->3->6->7->1->5->4->NULL
Note:指針
1 # Definition for singly-linked list. 2 # class ListNode: 3 # def __init__(self, x): 4 # self.val = x 5 # self.next = None 6 7 class Solution: 8 def oddEvenList(self, head: ListNode) -> ListNode: 9 if head is None: 10 return None 11 12 odd = head 13 even = head.next 14 evenHead = even 15 16 while even and even.next: 17 odd.next = even.next 18 odd = odd.next 19 even.next = odd.next 20 even = even.next 21 22 odd.next = evenHead 23 24 return head