给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。
请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。
def deleteDuplicates(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
dummy=ListNode(0)
dummy.next=head
pre=dummy
while head and head.next:
if head.val==head.next.val:
while head and head.next and head.val==head.next.val:
head=head.next
pre.next=head.next
head=head.next
else:
pre=pre.next
head=head.next
return dummy.next