3.23日:链表的中间结点
给定一个带有头节点head的非空单链表,返回链表的中间节点。如果有两个中间节点,则返回第二个中间节点。
输入:[1,2,3,4,5]——>输出:3
输入:[1,2,3,4,5,6]——>输出:4
//使用快慢指针,快指针q每次走2步,慢指针p每次走1步,当q走到链表的末尾时,p正好在中间
class Solution{
public ListNode middleNode(ListNode head){
ListNode p = head,q = head;while(q != null && q.next != null){
q = q.next.next;p = p.next;}return p;}
}