876. Middle of the Linked List
题目大意:返回一个list中间的元素,如果有两个则返回第二个;
解题思路:利用两个指针,一个步长为1一个为2,当2走到尾端,第一个走到的就是答案;
class Solution {
public:
ListNode* middleNode(ListNode* head) {
if(head==NULL || head->next==NULL) return head;
ListNode* p1=head;
ListNode* p2=head;
while(p2!=NULL)
{
if(p2->next !=NULL) ;
else break;
p1 = p1->next;
p2 = p2->next;
if(p2->next !=NULL) p2 = p2->next;
}
return p1;
}
};