链表的插入算法,if语句中i>pos-1 的作用?


bool insert_list(PNODE pHead,int pos,int val){
    int i=0;
    PNODE p=pHead;
    while(p!=NULL&&i<pos-1){
        p=p->pNext;
        ++i;
    }
    if(p==NULL||i>pos-1)
        return false;
    PNODE pNew = (PNODE)malloc(sizeof(NODE));
    if(NULL=pNew){
        printf("动态分配内存失败\n");
        exit(-1);
    }
    pNew->data=val;
    PNODE q=p->pNext;
    p->pNext=pNew;
    pNew->pNext=q;
    
    return true;


}

if语句中i>pos-1 的作用?

if(NULL=pNew)
->
if(NULL==pNew)

i>pos-1
插入位置无效

就是要在pos位置插入新数据,先遍历前pos-1位置,找到pos的位置