题解 | #反转链表#

反转链表

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
}

#算法小白#
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务