题解 | #链表中的节点每k个一组翻转#
链表中的节点每k个一组翻转
https://www.nowcoder.com/practice/b49c3dc907814e9bbfa8437c251b028e
class Solution:
def reverseKGroup(self , head: ListNode, k: int) -> ListNode:
# write code here
#加表头
if head==None: return head
res=ListNode(-1)
res.next=head
pre=res
cur=pre.next
cnt=0
#查看长度
p=head
len=0
while p:
p=p.next
len=len+1
while cur.next:
cnt=cnt+1
if cnt==len-len%k or len < k: break #计算需要反转的区间
if cnt % k == 0: #重置头节点
pre=cur
cur=cur.next
else: #对temp以pre为头节点进行头插法
temp=cur.next
cur.next=temp.next
temp.next=pre.next
pre.next=temp
return res.next


携程公司氛围 125人发布