题解 | #反转链表#
反转链表
https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca
/**
* class ListNode(var `val`: Int) {
* var next: ListNode? = null
* }
*/
object Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
fun ReverseList(head: ListNode?): ListNode? {
// 递推:将当 前要处理的节点 指向 上一个处理过的节点
// write code here
var p = head // 上一个处理过的节点
var q = head?.next ?: null // 当前要处理的节点
var r = q?.next ?: null // 下一个要处理的节点
p?.next = null
while (q!=null){
q.next = p // 将当 前要处理的节点 指向 上一个处理过的节点
p = q // 下一次 当前节点 变成 上一个处理过的节点
q = r // 下一次 下一个要处理的节点 变成 当前要处理的节点
r = r?.next ?: null // 下一次 下一个要处理的节点
}
return p
}
}
#Kotlin##悬赏#


