找到单向链表的中间位置
思路:
双指针。一个快指针,一个慢指针
fast每次走两步,slow每次走一步
一直走到fast到达null
注意:fast.next.next时要注意fast.next也不能为null
public ListNode middleNode(ListNode head) {
ListNode slow = head;
ListNode fast = head;
while(fast != null && fast.next != null) {
fast = fast.next.next;
slow = slow.next;
}
return slow;
}