快慢指针判断链表成环的问题

package linkedlist;

/**
 * Created by lijie35 on 2020-01-20 10:23 AM .
 */
public class FastSlowPoint {
          
   
    public static void main(String[] args) {
          
   
        Node h1 = new Node(0);
        Node h2 = new Node(1);
        Node h3 = new Node(2);
        Node h4 = new Node(3);
        Node h5 = new Node(4);
        h5.next=h4;
        h4.next=h5;
       // h3.next=h5;

        System.out.println(FastSlowPoint.fsp(h1));
    }


    /**
     * 快慢指针判断连表成环
     */
    public static boolean fsp(Node node) {
          
   
        
        if (node == null || node.next == null)
            return false;


        //指向头部
        Node slow = node;
        //指向头部
        Node fast = node;

        while (true) {
          
   
			//慢指针走一步
            slow = slow.next;
            //快指针走两步
            fast = fast.next.next;
			//如果快指针碰到队尾就不存在环
            if (fast == null && fast.next == null) {
          
   
                return false;
            }
			//相遇就是环
            if (slow == fast) {
          
   
                return true;
            }
        }


    }

}
经验分享 程序员 微信小程序 职场和发展