题解 | #链表中环的入口结点#

链表中环的入口结点

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   
    }
}

可能不对

全部评论

相关推荐

点赞 评论 收藏
分享
DKS233:项目写太简单了,你用什么技术实现了什么功能,优化了多少,分了哪些模块,解决了哪些难点,最好分模块写,你写的太模糊了。精通还是少用吧,你确定问你底层你扛的住吗,最好用熟悉。具备良好**意识,这种空话不要写,技能层面,要写就写实在的,比如“熟悉常用数据结构,如,堆,栈,链表,哈希表,平衡树”这种
你的简历改到第几版了
点赞 评论 收藏
分享
求offer的大角牛:简历写的第一乱,没有突出重点,第二项目太多太杂看不出来有啥核心技术,第三自我评价太多了,第四获得的荣誉没啥含金量,可以不写,反正问题不少
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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