Given a linked list, determine if it has a cycle in it. Follow up: Can you solve it without using extra space?
题意:判断链表有没有环
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public boolean hasCycle(ListNode head) { ///定义两个快慢指针。有环的话快指针一定会和慢指针相遇。否则快指针就提前到尾巴了 ////应该是我那会的考研题ca if(head==null || head.next==null || head.next.next==null)return false; ListNode fast=head.next.next; ListNode slow=head.next; while(fast!=slow){ if(fast.next!=null && fast.next.next!=null){ fast=fast.next.next; slow=slow.next; }else{ //fast提前走到了尾 return false; } } return true; } }
PS:快慢指针。注意判断边界条件
时间: 2024-10-27 04:59:16