leetcode-206-反转链表

题目:
反转一个单链表。

示例:

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

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

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

cur, pre = head, nil

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

cur.next = pre

  1. 将pre移到当前节点

pre = cur

  1. 将cur 移到cur.next

cur = cur.next

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

code:

def reverse_list(head)
  cur, pre = head, nil
  while cur
    cur.next, pre, cur = pre, cur, cur.next
  end
  pre

end

你可能感兴趣的:(leetcode-206-反转链表)