题目:
反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
思路:
这题是链表中的基础题也是一道经典题
单链表每一个节点中保存着下一个节点的指针,只需要将指针指向上一个节点就可以实现反转链表\
- 我们需要两个指针, 一个指向当前节点,一个指向前面的节点
cur, pre = head, nil
- 将当前节点的指针指向前面的节点
cur.next = pre
- 将pre移到当前节点
pre = cur
- 将cur 移到cur.next
cur = cur.next
- 循环直到cur为nil
- 此时pre已经移到最后一个节点,返回\
code:
def reverse_list(head)
cur, pre = head, nil
while cur
cur.next, pre, cur = pre, cur, cur.next
end
pre
end