链表取中间节点
const head = {
'val':1,
'next':{
'val':2,
'next':{
'val':3,
'next':{
'val':4,
'next':{
'val':5,
'next':undefined
}
}
}
}
}
const getMiddleNode = function (node) {
// 慢指针
let middle = node;
// 快指针
let fast = node.next;
// 利用fast和fast.next
// 如果链表长度为奇数,则返回中间节点
// 如果链表长度为偶数,则有两个中间节点,这里返回第一个
while(fast && fast.next){
middle = middle.next;
fast = fast.next.next;
}
return middle
};
console.log(getMiddleNode(head))