经典面试手撕题

#一人分享一道面试手撕题#
反转链表。题目描述:给定一个单链表的头节点 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)逐步调转箭头方向,注意指针更新的顺序。
全部评论
迭代确实是常用的了
点赞 回复 分享
发布于 01-09 21:58 陕西
反转单链表,社招也考过
点赞 回复 分享
发布于 01-07 23:55 北京
期待你分享更多的手撕题目
点赞 回复 分享
发布于 01-07 16:07 广东

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务