题目:
反转一个单链表。

示例:

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

思路:
这题是链表中的基础题也是一道经典题
单链表每一个节点中保存着下一个节点的指针,只需要将指针指向上一个节点就可以实现反转链表\

  1. 我们需要两个指针, 一个指向当前节点,一个指向前面的节点

    cur, pre = head, nil

  2. 将当前节点的指针指向前面的节点

    cur.next = pre

  3. 将pre移到当前节点

    pre = cur

  4. 将cur 移到cur.next

    cur = cur.next

  5. 循环直到cur为nil
  6. 此时pre已经移到最后一个节点,返回\

code:

1
2
3
4
5
6
7
def reverse_list(head)
cur, pre = head, nil
while cur
cur.next, pre, cur = pre, cur, cur.next
end
pre
end