剑指offer-求链表的中间结点
一次遍历即可。
/** * 定义两个指针,同时从链表的头指针出发,一个指针一次走一步,另一个指针一次走两步, * 当快指针到达链表的尾部,慢指针到达链表中间位置 * @param head * @return 链表中间结点 */ public ListNode findCenterNode(ListNode head) { if(head == null) return null; ListNode fast = head; ListNode slow = head; while(fast != null && fast.next != null) { fast = fast.next.next; slow = slow.next; } return slow;