zoukankan      html  css  js  c++  java
  • 数据结构3-关于链表的删除算法自己的思考

    初始条件:1.带有头结点的链表 2。删除位置i 

    基本操作:p指向某一个结点,可以删除它后面的那个结点 执行的操作是p->next=p->next->next 要删除第i个结点 就要找到第i-1个结点

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

    寻找第i-1个结点 

      while( j<i ){
        p=p->next;

        j++;

      }

    i的不同情况:1.i<1 此时p指向头结点 2. 1<=i<=length 正常执行 3.i=length+1 正常执行 p指向最后一个结点 3.i>length+1 会出现空指针异常

    避免4出现的空指针异常 以及 3在后续操作会出现的空指针异常 加入条件 p->next 不为空

      while( j<i && p->next){
        p=p->next;

        j++;

      }

    排除1,3,4:

      if(j>i || p->next){
        return ERROR;

      }

    删除结点:

      p->next=p->next->next

  • 相关阅读:
    盛大自动化运维
    Redis used_cpu_sys used_cpu_user meaning (redis info中cpu信息的含义)
    redis info 详解
    htop详解
    线程问题排查思路
    网络协议基础 -- 东哥
    线程通讯
    进程
    day14
    day13
  • 原文地址:https://www.cnblogs.com/zcs2020/p/13225506.html
Copyright © 2011-2022 走看看