算法设计与分析课件 09 反转链表.pptxVIP

  • 4
  • 0
  • 约小于1千字
  • 约 7页
  • 2026-06-10 发布于山东
  • 举报

算法设计与分析本节要点CONTENTS反转链表

反转链表实例:给你单链表的头节点head,请你反转链表,并返回反转后的链表。

反转链表设计递归函数三部曲:(1)函数名和参数定义递归函数名为reverseList(),需要设计一个参数head。(2)递归的结束条件考虑特殊情况,如果链表为空(head=nullptr),或者只有一个结点(head-next=nullptr),则不需要反转链表,直接返回head即可。(3)自调用在函数内部调用自身,调用自身时函数名相同。

反转链表可以宏观考虑,如果第一个结点不动,后面所有结点完成了反转操作,反转第一个结点之后的链表可以调用同名函数reverseList(head-next)实现。

反转链表只需要两个操作:①将该链表尾结点和第一个结点链接;②修改第一个结点的next为空即可。后面链表反转后的尾结点正是head-next,修改其next指针指向第一个结点,即head-next-next=head。再修改第一个结点的next为空,head-next=nullptr。

算法实现反转链表

算法分析时间复杂度:时间复杂度为O(n),n为结点数。空间复杂度:空间复杂度为O(n)。反转链表

文档评论(0)

1亿VIP精品文档

相关文档