31.K 个一组翻转链表
给你链表的头节点head,每k个节点一组进行翻转,请你返回修改后的链表。
k是一个正整数,它的值小于或等于链表的长度。如果节点总数不是k的整数倍,那么请将最后剩余的节点保持原有顺序。
你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。
方法一:先判断有多少个组,再进行头插法,要每次记录尾部作为新的头节点
class Solution(object): def reverseKGroup(self, head, k): val=ListNode() num=0 cur=head while cur: num+=1 cur=cur.next num=num//k tail=val while num: x=k cur_head=tail tail=head while x: cur=head.next head.next=cur_head.next cur_head.next=head head=cur x-=1 num-=1 tail.next=head return val.next