问题
给定一个带有头结点 head 的非空单链表,返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
例子
思路
- 双指针,一个一次走一步,一个一次走两步
代码
class Solution {
public ListNode middleNode(ListNode head) {
ListNode fast=head;
while(fast!=null && fast.next!=null) {
fast = fast.next.next;
head=head.next;
}
return head;
}
}