如何找到链表最中间的结点

维持两个指针,一个是快指针,一个是慢指针,对链表进行遍历,快指针每次走两个单位,慢指针每次走一个单位,当快指针到达终点时,若结点个数为奇数,慢指针指向最中间,若结点个数为偶数,慢指针指向中间偏右

class Solution {
    public ListNode findMid(ListNode start){
        ListNode left=start,right=start;
        while(right!=null&&right.next!=null){
            right=right.next;
            right=right.next;
            left=left.next;
        }
        return left;
    }
 }

你可能感兴趣的:(我的大学学习记录)