给定一个头结点为head 的非空单链表,返回链表的中间结点。
    如果有两个中间结点,则返回第二个中间结点。
    示例 1:

    输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5]) 返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。 注意,我们返回了一个 ListNode 类型的对象 ans,这样: ans.val = 3, ans.next.val = 4, ans.next.next.val = 5, 以及 ans.next.next.next = NULL.

    1. class Solution {
    2. public ListNode middleNode(ListNode head) {
    3. if (head == null) {
    4. return null;
    5. }
    6. ListNode slow = head;
    7. ListNode fast = head;
    8. while (fast != null && fast.next != null) {
    9. slow = slow.next;
    10. fast = fast.next.next;
    11. }
    12. return slow;
    13. }
    14. }

    image.png