反转一个单链表。
示例:
输入: 1->2->3->4->5->NULL
输出: 5->4->3->2->1->NULL
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func reverseList(head *ListNode) *ListNode {
// prev 是所有已经逆转的节点的head
var prev *ListNode
// head 是下一个被逆转的节点
for head != nil {
// 让temp指向head.Next, 免得head.Next不见了.
temp := head.Next
// head称为已经逆转的节点的新head
head.Next = prev
// 让prev重新称为所有已被逆转节点的head
prev = head
// 让head指向下一个被逆转的节点
head = temp
}
return prev
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。