<强>题目:
强>
给定一个单链表的头指针头,以及两个整数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实现反转部分单向链表