欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 反转链表(LeetCode)

反转链表(LeetCode)

2024/10/25 23:24:52 来源:https://blog.csdn.net/weixin_74254879/article/details/140913456  浏览:    关键词:反转链表(LeetCode)

题目

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

解题

class ListNode:def __init__(self, value=0, next=None):self.value = valueself.next = nextdef reverse_linked_list_recursive(head: ListNode) -> ListNode:# 空链表或单节点链表if not head or not head.next:return head# 递归反转子链表new_head = reverse_linked_list_recursive(head.next)# 处理当前节点head.next.next = headhead.next = Nonereturn new_head# 辅助函数:创建链表
def create_linked_list(elements):if not elements:return Nonereturn ListNode(elements[0], create_linked_list(elements[1:]))# 辅助函数:打印链表
def print_linked_list(head: ListNode):current = headwhile current:print(current.value, end=" -> " if current.next else "\n")current = current.next# 测试代码
if __name__ == '__main__':# 创建链表: 1 -> 2 -> 3 -> 4 -> 5elements = [1, 2, 3, 4, 5]head = create_linked_list(elements)print("原始链表:")print_linked_list(head)reversed_head = reverse_linked_list_recursive(head)print("反转后的链表:")print_linked_list(reversed_head)

 原始链表:
1 -> 2 -> 3 -> 4 -> 5
反转后的链表:
5 -> 4 -> 3 -> 2 -> 1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com