您的位置:首页 > 编程语言 > C语言/C++

C++实现遍历链表一次求出中间的节点

2014-09-12 15:13 381 查看
//构建链表

#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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: