876. 链表的中间结点

题目链接: https://leetcode-cn.com/problems/middle-of-the-linked-list/

思路:用快慢指针,快指针每次走2步,慢指针每次走1步,路程相同(链表长度一定)的情况下,快指针的速度是慢指针的2倍,当快指针走完链表的时候,慢指针在链表的中间点。

var middleNode = function(head) {
    slow = fast = head;
    while (fast && fast.next) {  // 注意判断条件,fast是会先遍历完链表的,要保证fast.next不为空
        slow = slow.next;
        fast = fast.next.next;
    }
    return slow;
};

你可能感兴趣的:(876. 链表的中间结点)