k组链表反转

题目

12345678
k=2, 21436587
k=3, 32165478

思路

第一个for循环先找到第一个k的end index,然后反转这一段字符串,反转的过程中,再找到下一段的截至位置,重复下去。

代码

def reverse_kpair(link,k):
  head = link.head
  head_next = head
  for i in range(k):
    if head_next is None:
      return head
    head_next = head_next.next
  ret = head_next
  current = head.next
  while head_next is not None:
    tail = current
    pre = Node()
    for i in range(k):
      if head_next is not None:
        head_next = head_next.next
      nest = current.next
      current.next = pre
      pre = current
      current = nest
      
    tail.next = head_next
    if head_next is None:
      tail.next = current
  return ret
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值