怎样找出链表中间的元素

如题所述

用两个指针 一个指针每次跳一次 P1 = P1->NEXT
另外一个指针 每次跳两次 P2 = p2->next->next 当P2为NULL时那个就是终点,这时P1所在的位置就是中间节点 这是相对于单向链表哦
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-07-31
设立两个指针a,b;

两个同时从链表头出发,a每次后移一个位置,b后移两个,直到b指向链表尾,循环结束,a则就指向了表中间位置
第2个回答  2010-07-31
int Search(LIST& head,int str){
LIST p,q;
p=head;
if(head==NULL)
cout<<"list NULL,erro\n";
else{
for(;p->data!=str&&p->next!=NULL;p=p->next)
q=p;
if(p->next==NULL&&p->data!=str)
cout<<str<<" is not in the list\n";
else if(p->data==str)
return(str);
}
}
相似回答