题解 | #链表中环的入口结点#
链表中环的入口结点
https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4
/**
* class ListNode(var `val`: Int) {
* var next: ListNode? = null
* }
*/
object Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param pHead ListNode类
* @return ListNode类
*/
var current: ListNode? = null
var arrow: ListNode? = null
fun EntryNodeOfLoop(pHead: ListNode?): ListNode? {
// write code here
val mHead = ListNode(-1)
mHead.next = pHead
current = mHead
arrow = current
if (hasCycle(2)) {
arrow = mHead
hasCycle(1)
return arrow
} else {
return null
}
}
private fun hasCycle(step: Int): Boolean {
while (arrow != null && current != null) {
repeat(step) {
arrow = arrow?.next
}
current = current?.next
if (arrow == null) {
return false
}
if (arrow == current) {
return true
}
}
return false
}
}
可能不对
