leetcode-206-反转链表

2019-07-10  本文已影响0人  葫芦葫芦快显灵

题目:
反转一个单链表。

示例:

输入: 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

上一篇 下一篇

猜你喜欢

热点阅读