python实现反转部分单向链表

  

<强>题目:
  

  

给定一个单链表的头指针头,以及两个整数a和b,在单链表中反转linked_list (a - b)的结点,然后返回整个链表的头指针。
  例如:
  单链表(100年1000、5、12日,45岁的塞西尔,999年),
=4,b=6,
  返回的链表是[1000、5、12、100、999,塞西尔,45),也就是说,
  a和b分别为索引值。如果a和b超过了索引范围就返回错误。

  

<强>代码:
  

  

我写的不够简洁,比较繁琐,但是能跑通,繁琐的原因在于我使用了对循环,对于==0的情况,循环无法识别。

        def reverse_part_linked_list(头,a, b): #反转部分链表结点,a、b分别为索引值   如果头==0:   打印“空链表。不需要逆转。”   返回头   p=头   长度=1   而p !=0:   长度+=1   p=p.next   如果长度==1:   打印“不需要逆转。”   返回头   如果一个& lt;0或b比;长度是1或祝辞=b:   提高异常(“给定的”从“价值和”到“价值”是错误的。)   p=头      如果一个==0:#由于为循环中xrange的范围问题,我就分情况写了。   尾巴,头=p, p   pre=0   _在xrange (a、b + 1):   p=p.next   头。下一个=前   pre=头   头=p   尾巴。下一个=p   返回头   其他:   _在xrange (1):   p=p.next   前,尾巴,头=p, p, p   p=p.next   pre=0   _在xrange (a + 1, + 2):   p=p.next   头。下一个=前   pre=头   头=p   前面。下一个=前   尾巴。下一个=p   返回头   之前      

<>强分析:
  

  

核心依然是反转链表的指针问题,均是一遍循环,时间复杂度o (n),空间复杂度为若干个变量。

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
  

python实现反转部分单向链表