1、如果有两个中间结点,返回第二个中间结点
public ListNode middleNode(ListNode head) {
ListNode p=head;
ListNode q=head;
while(q!=null&&q.next!=null)
{
p=p.next;
q=q.next.next;
}
return p;
}
2、如果有两个中间结点,返回第一个中间结点
public ListNode middleNode(ListNode head) {
ListNode p=head;
ListNode q=head;
while(q!=null&&q.next!=null&&q.next.next!=null) //以防只有两个节点的特殊情况
{
p=p.next;
q=q.next.next;
}
return p;
}