采用一个计数器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;
}
}