Algorithm LeetCode 0206.反转链表 反转链表 LeetCode206. 反转链表 题目描述 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 1 2 输入:head = [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 1 2 输入:head = [1,2] 输出:[2,1] 示例 3: 1 2 输入:head = [] 输出:[] 思路 题目要求 给定一个链表,反转该链表 返回反转后的链表 因为是单链表,所以要标记当前节点的前节点可以使用双指针法,一个标记前节点,一个标记当前节点;翻转完成后两个指针都往后移动 注意 翻转前,定义一个临时节点,存储当前节点的后一个节点。否则,当一组节点翻转后,双指针无法向后移动。 记得初始化pre为空,因为在Go中int型默认值为0 代码 Go 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /** * Definition for singly-linked list. * type ListNode struct { * Val int * Next *ListNode * } */ func reverseList(head *ListNode) *ListNode { pre := new(ListNode) pre = nil for cur := head; cur != nil; { temp := cur.Next cur.Next = pre pre = cur cur = temp } return pre } Link GitHub