题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
package main
import . "nc_tools"
/*
* type ListNode struct{
* Val int
* Next *ListNode
* }
*/
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
func ReverseList(head *ListNode) *ListNode {
// write code here
if head == nil {
return nil
}
// 迭代 1(cur = prev) ---> 2(cur.next) ---> 3
var prev *ListNode
cur := head
for cur != nil {
temp := cur.Next // 因链表只有一个指向,因此在反转时需要一个临时变量。
cur.Next = prev // 改变链表的连接指向,即断开1、2指向并反转
prev = cur // 设置前置节点的值
cur = temp // 将当前节点后移一位,以便继续遍历
}
return prev
}
#算法小白#


