链表的插入

初始条件:1.带有头结点的链表 2.插入位置 i 3.插入的节点Node

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

基本操作:假设p指向某个节点 q指向被插入的节点 则可以执行的是在p之后插入节点 

初始化:1.p=L 指向头结点 2.j=1

寻找第i-1个结点:

    while(j<i){

      p=p->next;

      j++;
    }

这样最终指向的是第i-1个结点;

i的不同情况:1.i<1 直接跳出 2.1<=i<=length 可以正常执行 3.i=length+1 在链表末尾插入数据 4.i>length+1 出现空指针异常

杜绝最后一种情况 :加入判断条件:p不为空

循环改为:

    while(p && j<i){

      p=p->next;

      j++;
    }

在判断中剔除 1 与 4 的情况 

    if(!p || j>i){

      return ERROR;
    }

操作:q->next=p->next

   p->next=q;

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄