算法练习:NC2_中等
题目:
判断给定的链表中是否有环。如果有环则返回true,否则返回false。
你能给出空间复杂度的解法么?
解答
//思路:快慢指针
public class Solution {
//判断是否有环的方法,head是链表头部
public boolean hasCycle(ListNode head) {
ListNode fast = head; //快指针
ListNode slow = head; //慢指针
while(fast != null && fast.next != null){ //去到最后一个节点
slow = slow.next; //下一个节点
fast = fast.next.next; //下下个节点
if(slow == fast) //快慢指针重合,有环
return true;
}
return false; //无环
}
}
个人整理的笔记,仅供学习使用,有问题麻烦指正。
题目及解答思路均来源于:牛客网