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

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

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;
    }
 }

猜你喜欢

转载自blog.csdn.net/CY2333333/article/details/108081142