• 4.5 链表元素的删除


    1.删除指定索引index处的元素

    和向链表中添加元素一样,寻找到等待删除的元素前的节点

     找到2前面的节点1,

     1  public E remove(int index){
     2         if(index < 0 || index >= size)
     3             throw new IllegalArgumentException("Remove failed. Index is illegal.");
     4              //找到等待删除的元素之前的节点
     5         Node prev = dummyHead;
     6         for(int i = 0 ; i < index ; i ++)
     7             prev = prev.next;
     8 
     9         Node retNode = prev.next;  //retNode为待删除节点
    10         prev.next = retNode.next;
    11         retNode.next = null;
    12         size --;
    13 
    14         return retNode.e;
    15     }
    16 
    17     // 从链表中删除第一个元素, 返回删除的元素
    18     public E removeFirst(){
    19         return remove(0);
    20     }
    21 
    22     // 从链表中删除最后一个元素, 返回删除的元素
    23     public E removeLast(){
    24         return remove(size - 1);
    25     }

    2 删除链表中的指定元素

     1 // 从链表中删除元素e
     2     public void removeElement(E e){
     3 
     4         Node prev = dummyHead;
     5         while(prev.next != null){
     6             if(prev.next.e.equals(e))
     7                 break;
     8             prev = prev.next;
     9         }
    10 
    11         if(prev.next != null){
    12             Node delNode = prev.next;
    13             prev.next = delNode.next;
    14             delNode.next = null;
    15             size --;
    16         }
    17     }
    带女朋友搬家新家条件不好,累到女朋友了,让女朋友受苦了,特此明志:每天学习,明年这个时候(20190812)让女朋友住上大房子,永远年轻,永远热泪盈眶,很多人都是这样,他们都把自己当成身在梦中一样,浑浑噩噩地过日子,只有痛苦或爱或危险可以让他们重新感到这个世界的真实。
  • 相关阅读:
    WinRAR的命令行模式用法介绍
    Linux find命令的用法实践
    Linux服务器磁盘扩展和oracle表空间文件迁移操作记录
    博客园开篇,自己开发的双色球小助手
    解决MySQL安装3306端口占用问题
    html书写行内元素时-tab和换行会在行内元素间引入间距
    FileReader生成图片dataurl的分析
    mysql启动流程
    npm--debug模块
    js之Symbol类型
  • 原文地址:https://www.cnblogs.com/make-big-money/p/10322269.html
Copyright © 2020-2023  润新知