数据结构与算法 链式表的按序号查找

我想问一下为啥会显示段错误


ElementType FindKth( List L, int K ){
    PtrToLNode ptrl = L;
    int i = 1;
    
    if(i<0){
        return ERROR;
    }
    else{

    while( ptrl!=NULL && i<K){
        ptrl = ptrl->Next;
        i++;
    }
    if( i==K ){
        return(ptrl->Data);
    }
    else{
        return ERROR;
    }
    }

}

如果当k等于1 L传进来是null 那你不也直接返回一个Data了 所以在前面也要判断这个链表是不是空 希望采纳一下哈

小修改供参考:

ElementType FindKth( List L, int K ){
    PtrToLNode ptrl = L;
    int i = 0; //i=1;
    if(L == NULL) return ERROR;
    if(K < 1){ //(i<0)
        return ERROR;
    }
    else{
        while( ptrl!=NULL && i < K){
              ptrl = ptrl->Next;
              i++;
        }
        if( i==K ){
              return(ptrl->Data);
        }else{
              return ERROR;
        }
    }
}