题解 | #链表中环的入口结点#
链表中环的入口结点
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 } }
可能不对