首页 > 编程语言 >单链表每k个一组反转(python)

单链表每k个一组反转(python)

时间:2022-12-01 14:36:22浏览次数:43  
标签:单链 cur 一组 python 反转 链表 tail 节点 翻转

题目:

将给出的链表中的节点每 k 个一组翻转,返回翻转后的链表
如果链表中的节点数不是 k 的倍数,将最后剩下的节点保持原样
你不能更改节点中的值,只能更改节点本身。

具体做法:k = 3

  • step 1:每次从进入函数的头节点优先遍历链表k次,分出一组,若是后续不足k个节点,不用反转直接返回头。
  • step 2:从进入函数的头节点开始,依次反转接下来的一组链表
  • step 3:这一组经过反转后,原来的头变成了尾,后面接下一组的反转结果,下一组采用上述递归继续。

 

 

 

 

 

 

 

 

 

 

 

 

def reverseKGroup(self , head: ListNode, k: int) -> ListNode:         # write code here         #找到每次翻转的尾部         tail = head         #遍历k次到尾部         for i in range(0,k):             #如果不足k到了链表尾,直接返回,不翻转             if tail == None:                 return head             tail = tail.next         #翻转时需要的前序和当前节点         pre = None         cur = head         #在到达当前段尾节点前         while cur != tail:             #翻转             temp = cur.next             cur.next = pre             pre = cur             cur = temp         #当前尾指向下一段要翻转的链表         head.next = self.reverseKGroup(tail, k)         return pre

 

标签:单链,cur,一组,python,反转,链表,tail,节点,翻转
From: https://www.cnblogs.com/ailie/p/16941317.html

相关文章

  • 使用 Python 设置数据的路径
    https://desktop.arcgis.com/zh-cn/arcmap/latest/analyze/python/setting-paths-to-data.htmhttps://blog.csdn.net/weixin_45598506/article/details/111311350使用Py......
  • python not的用法
    在python中None,False,空字符串"",0,空列表[],空字典{},空元组()都相当于False,即:notNone==notFalse==not''==not0==not[]==not{}==not()......
  • Python学习之路-python基础二-第三篇
    1.内置函数一  详细见python文档,猛击这里 2.文件操作操作文件时,一般需要经历如下步骤:打开文件操作文件一、打开文件文件句柄=file('......
  • Python高级-静态方法和类方法的根本区别-笔记
    1.类属性、实例属性它们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同,实例属性属于对象类属性属于类classProvince(object):#类属性country='......
  • Python高级-property属性-笔记
    1.property属性1.什么是property属性一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法################定义###############classFoo:deffunc(self......
  • Python高级-魔法属性-笔记
    无论人或事物往往都有不按套路出牌的情况,Python的类属性也是如此,存在着一些具有特殊含义的属性,详情如下:1.__doc__表示类的描述信息classFoo:"""描述类信息,这是用于看......
  • Python高级-面向对象设计-笔记
    继承-是基于Python中的属性查找(如X.name)多态-在X.method方法中,method的意义取决于X的类型封装-方法和运算符实现行为,数据隐藏默认是一种惯例参考实例腾讯即时通信模......
  • Python高级-with与“上下文管理器”-笔记
    如果你有阅读源码的习惯,可能会看到一些优秀的代码经常出现带有“with”关键字的语句,它通常用在什么场景呢?今对于系统资源如文件、数据库连接、socket而言,应用程序打开这......
  • 使用python玩转二维码!速学速用!⛵
    ......
  • Python之文件操作
    Python之文件的操作操作文件之读文件第一种:f=open(r'd:\python\test\a.txt','r',encoding='utf8')print(f.read())f.close()此种方法在调用以后,必须加一个c......