先捋思路,再写代码
快指针每次走两步,慢指针每次走一步,等循环结束时,慢指针指向链表中点
边界检测,如果是偶数节点,在中点靠右
空表
单节点
双节点 slow指向 2/2+1 2
三节点 slow指向 3/2+1 2
四节点 slow指向 4/2+1 3
public Listnode findMidnode(Listnode list){
Listnode fast = list;
Listnode slow = list;
while(fast!=null && fast.next!=null)
{
fast = fast.next.next;
slow = slow.next;
}
return slow;
}