反转链表

2022-06-25  本文已影响0人  Sun东辉

定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。

示例:

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

限制:

解题思路:迭代

具体过程如下:

  1. 申请一个临时空间,存储下一个节点的地址;
  2. 将当前节点指向虚拟节点;
  3. 虚拟节点后移;
  4. 当前节点后移;
/**
 * Definition for singly-linked list.
 * type ListNode struct {
 *     Val int
 *     Next *ListNode
 * }
 */
func reverseList(head *ListNode) *ListNode {
    var prev *ListNode
    cur := head
    for cur != nil {
        next := cur.Next

        cur.Next = prev
        prev = cur

        cur = next
    }

    return prev
}

来源:力扣(LeetCode) 链接:剑指 Offer 24. 反转链表

上一篇 下一篇

猜你喜欢

热点阅读