给定一个头结点为 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
思路:快慢指针法
1.快慢指针指向头节点,快指针运动2步,慢指针运动1步
当fast==null || fast.next==null,慢指针指向中间节点
function ListNode(val) {
this.val = val;
this.next = null;
}
var middleNode = function(head) {
let fast = head
let slow = head
while(fast!=null && fast.next!=null){
slow = slow.next
fast = fast.next.next
}
return slow
};