2026/1/19 20:41:28
网站建设
项目流程
高校网站群建设的公司有哪些,wordpress目录路径,上海的二字代码,宁波网站建设推广公司1.思路#xff1a;快慢指针法。如果链表有环的话#xff0c;快指针一定可以在一段时间后追上慢指针#xff0c;这两个指针一定会相遇。
2.注意#xff1a;代码比较两个节点的时候#xff0c;比较的是内存地址是否一致#xff0c;并没有比较节点的val。
3.疑问。
…1.思路快慢指针法。如果链表有环的话快指针一定可以在一段时间后追上慢指针这两个指针一定会相遇。2.注意代码比较两个节点的时候比较的是内存地址是否一致并没有比较节点的val。3.疑问。1快指针会不会跳过慢指针从来不会和慢指针相遇呢答这是不可能的。如果由有环的话那么快慢指针都会进入到环中。这个时候用“相对速度”思考慢指针不动快指针相对于慢指针每次只走一步那么快慢指针一定会相遇。2为什么代码里的while循环并没有判断slow是否为空答slow在fast的后面如果fast不为空那么slow也肯定不为空。也就是fast在探路slow走的都是fast走过的路。4.复杂度分析1时间复杂度O(n)其中n是链表的长度。2空间复杂度O(1)。附代码public class Solution { public boolean hasCycle(ListNode head) { ListNode slow head; ListNode fast head; while(fast ! null fast.next ! null){ slow slow.next; fast fast.next.next; if(fast slow){ return true; } } return false; } }