找链表的中点

假如节点数为偶数2n:

情况一:

        ListNode slow=head;
        //情况一,fast=head.next;
        ListNode fast=head.next;
        while(fast!=tail&&fast.next!=tail){
            fast=fast.next.next;
            slow=slow.next;
        }

        此时,slow定位到第n个节点。

情况二:

        ListNode slow=head;
        //情况二,fast=head;
        ListNode fast=head;
        
        while(fast!=tail&&fast.next!=tail){
            fast=fast.next.next;
            slow=slow.next;
        }

此时,slow定位到第n+1个节点。

假如节点数为奇数:

        两种方法都会定位到中间的那个节点。

你可能感兴趣的:(链表,数据结构)