中信科技在线面试题及答案(PDF下载).docx

中信科技在线面试题及答案(PDF下载).docx

中信科技在线面试题及答案(PDF下载)

一、编程与算法题(总分30分)

1.给定一个链表,判断链表是否有环,如果有环,返回环的入口节点,否则返回null。请用时间复杂度O(n)空间复杂度O(1)的方法实现。

答案:使用快慢指针法(Floyd循环检测算法)。初始化快指针fast和慢指针slow都指向链表头节点。若fast或fast.next为null,则无环,返回null;否则进入循环,每次slow移动一步(slow=slow.next),fast移动两步(fast=fast.next.next)。若相遇,则说明有环,此时将slow重置为头节点,fast继续移动一步,再次

文档评论(0)

1亿VIP精品文档

相关文档