经典面试手撕题
#一人分享一道面试手撕题#
反转链表。题目描述:给定一个单链表的头节点 head,请你反转链表,并返回反转后的头节点。(这应该是最经典的手撕题之一)
答案如下:
一、迭代法(时间复杂度O(n),空间复杂度O(1))
python
def reverselist(head):
prev = None # 前驱节点初始化为空
curr = head # 当前节点从头开始
while curr:
nextnode = curr.next # 临时保存下一个节点
curr.next = prev # 反转指针方向
prev = curr # 前驱节点后移
curr = next_node # 当前节点后移
return prev # 最终prev成为新头节点
关键点:通过三指针(prev/curr/next)逐步调转箭头方向,注意指针更新的顺序。
反转链表。题目描述:给定一个单链表的头节点 head,请你反转链表,并返回反转后的头节点。(这应该是最经典的手撕题之一)
答案如下:
一、迭代法(时间复杂度O(n),空间复杂度O(1))
python
def reverselist(head):
prev = None # 前驱节点初始化为空
curr = head # 当前节点从头开始
while curr:
nextnode = curr.next # 临时保存下一个节点
curr.next = prev # 反转指针方向
prev = curr # 前驱节点后移
curr = next_node # 当前节点后移
return prev # 最终prev成为新头节点
关键点:通过三指针(prev/curr/next)逐步调转箭头方向,注意指针更新的顺序。
全部评论
反转单链表,社招也考过
期待你分享更多的手撕题目
相关推荐

