题目描述

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。


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

思路

拿好三个指针,cur,pre,next

  • next是用来临时保存下次要遍历的节点
  • pre是用来临时保存上次遍历过的节点
  • cur是修改节点,作用是修改Next变量,指向pre

题解

func reverseList(head *ListNode) *ListNode {
    var pre *ListNode
    cur := head
    var next *ListNode
    for cur != nil{
        next = cur.Next
        cur.Next = pre
        pre = cur
        cur = next
    }
    return pre
}