''' 给了单链表的头结点, 给了一个int K 。 要求把每 K 个结点逆转一下, 要求返回的是逆转以后头结点的指针。 ''' ''' 需要三个指针,new指向逆转好的,old指向还没有逆转好的,temp指向old后面的结点以防丢失后面的数据。 三个指针连续的后移。 '''
defreverse(head,k): new = head.next old = new.next for i inrange(k-1): temp = old.next old.next = new # 实现逆序操作。 new = old old = temp head.next.next = old # 保证链表的完整性。 # head的 next,这里可以体现出头部设置空结点的好处。 # 这里的空结点用seat在链表里设定了。就没有写进reverse方法里面了。 head.next = new # return new
result = reverse(ll.front,6) print(result.data) ll.show()