leetcode——206.反转链表

题目描述

反转一个单链表。

  • 示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL

解题思路

  • 定义一个游标记录当前值。Pre = None
  • 链表的第一个节点的next指针指向Pre
  • Pre 变为当前节点
  • 向后遍历节点

代码

class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """

        cur ,prev = head,None
        while cur:
            tmp = cur.next
            cur.next = prev
            prev = cur
            cur = tmp
        return prev

注意

class Solution(object):
    def reverseList(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """

        cur ,prev = head,None
        while cur:
            cur.next = prev
            prev = cur
            cur = cur.next
        return prev

不能这样写,while 循环里面的cur.next一开始就已经变成了prev,因此需要先保存tmp = cur.next

发布了160 篇原创文章 · 获赞 33 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/Heitao5200/article/details/102787608