//构建链表
#include"list.h"
listnode* MiddleNOdeFromEnd(listnode* head)
{
listnode* pahead=head;
listnode* pbehind=head;
if(head->next==NULL)
return NULL;
if(head->next->next==NULL)
return head->next;
while(pahead!=NULL&&pbehind!=NULL&&pbehind->next!=NULL&&pahead->next!=NULL)
{
pahead=pahead->next->next;
pbehind=pbehind->next;
}
return pbehind;
}
int main()
{
list list1;
list1.addtolist(1);
list1.addtolist(2);
/*list1.addtolist(3);
list1.addtolist(4);
list1.addtolist(5);
list1.addtolist(6);
list1.addtolist(7);
list1.addtolist(8);
list1.addtolist(9);
list1.addtolist(10);
list1.print();*/
listnode* head=list1.Head();
listnode* pmiddle=MiddleNOdeFromEnd(head);
cout<<pmiddle->data<<endl;
return 0;
}
#include"list.h"
listnode* MiddleNOdeFromEnd(listnode* head)
{
listnode* pahead=head;
listnode* pbehind=head;
if(head->next==NULL)
return NULL;
if(head->next->next==NULL)
return head->next;
while(pahead!=NULL&&pbehind!=NULL&&pbehind->next!=NULL&&pahead->next!=NULL)
{
pahead=pahead->next->next;
pbehind=pbehind->next;
}
return pbehind;
}
int main()
{
list list1;
list1.addtolist(1);
list1.addtolist(2);
/*list1.addtolist(3);
list1.addtolist(4);
list1.addtolist(5);
list1.addtolist(6);
list1.addtolist(7);
list1.addtolist(8);
list1.addtolist(9);
list1.addtolist(10);
list1.print();*/
listnode* head=list1.Head();
listnode* pmiddle=MiddleNOdeFromEnd(head);
cout<<pmiddle->data<<endl;
return 0;
}