题目:现有一个单链表[1,2,3,4,5],返回它的中间节点3
class Solution {
public ListNode middleNode(ListNode head) {
ListNode fast = head;
ListNode low = head;
while(fast != null && fast.next != null){
fast = fast.next.next;
low = low.next;
}
return low;
}
}
分析:这里采用的是快慢指针的方法来解决的,一个指针每次移动一个节点,另外一个指针每次移动两个节点,当快指针的next指向是空的时候,说明慢指针到达中间节点了。