反转链表

image.png

这个题是面试中的常考题,在作业帮的面试中也遇到了,面试官要求手写代码。

首先要记住的是:要有三个指针, 分别是prev,cur,temp。
prev指针来记录前一个节点,cur是当前的指针,temp中存储的是当前节点的下一个节点,然后将cur中的next指向prev,然后cur和prev前进一步。直到尾端。

一个要点:如果当前是空链表,则返回空链表。所以将prev初始化为none,最后也返回prev

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    # 返回ListNode
    def ReverseList(self, pHead):
        # write code here
        prev = None
        cur = pHead
        while cur:
            temp = cur.next
            cur.next = prev
            prev = cur
            cur = temp
        return prev
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 过程 迭代过程中需要三个指针: p用来指向当前待处理的结点 lastp 指向上一个处理完的结点,初始为空。这样的话...
    熊白白阅读 3,017评论 0 0
  • 206. 反转链表 描述 反转一个单链表。 进阶 链表可以迭代或递归地反转。你能否两个都实现一遍? 思路 迭代版本...
    GoMomi阅读 5,013评论 0 0
  • 题目:输入一个链表,反转链表后,输出链表的所有元素。 方法一 递归 一般情况下反转的问题利用递归代码写起来是比较简...
    qming_c阅读 1,202评论 0 0
  • 题目:输入一个链表,反转链表后,输出链表的所有元素。 思路1:用列表保存链表中的所有元素,然后将其进行反转,新建链...
    minningl阅读 1,693评论 0 0
  • 题目链接:面试题16 反转链表 我的思路 反转链表的基本思路就是把指向后驱的指针指向前驱 如果把指针的指向改变,无...
    贾雨村甄士隐阅读 3,051评论 0 0

友情链接更多精彩内容