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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。