发布时间:2023-07-24 15:00
题目要求:
给定一个头结点为 head
的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
分析题目:
很明显这给的是一个链表,要求的是返回链表中间的值,如果链表的个数为奇数,则返回中间节点即可,但是当链表的个数是偶数的时候,我们就会发现有两个中间节点,再看题目要求,返回第二个中间节点即可
解题思路:
我的想法是,确定中间点,如果是只有一个的情况下,返回链表后续内容,当中间节点有两个的时候,则返回第二个中间节点,以及其后续的内容。
代码如下:
var middleNode = function(head) {
let left=head, right=head
while(right && right.next){
left=left.next
right=right.next.next
}
return left
};
但是这样的效果并不是很理想,希望以后有时间自己优化一下。