采用一个计数器j=0;然后根据分配的序号i,在满足j<=i的情况下.让指针向下扫。
代码:
ListNode* GetNode(LinkList head,int i){ //在带头结点的单链表head中查找第i个结点,若找到(0<=i<=n), //则返回该结点的存储位置,否则返回NULL。 int j; ListNode *p; p=head;j=0;//从头结点开始扫描 while(p->next&&j<i){//顺指针向后扫描,直到p->next为NULL或i=j为止 p = p->next; ++j; } if(j==i){ return p;//找到第i个结点 }else{ return NULL; } }
原文:http://blog.csdn.net/howlaa/article/details/19151593