三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

31.K 个一组翻转链表

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
← 返回列表