listnode用法(java list set)

javaListNodeclassListNode{Eval;//结点值,泛型ListNode<E>next;//下一结点ListNode(Ex){val=this.x;}}创建及遍历链表classListNode{intval;ListNodenext;ListNode(intx){val=this.x;}}ListNodenodestr=newListN

大家好,又见面了,我是你们的朋友全栈君。

java ListNode

在这里插入图片描述

class ListNode{ 
   
    E val;  //结点值,泛型
    ListNode<E> next; //下一结点
    ListNode(E x){ 
   
        val = this.x;
    }
}

创建及遍历链表

class ListNode{ 
   
   int val;
   ListNode next;
   ListNode(int x){ 
   val = this.x;}
}

ListNode nodestr = new ListNode(0); //创建首结点
    ListNode nextNode;     //创建下一个结点
    nextNode = nodestr;    //指向首结点
    //创建链表
    for(int i = 0;i<10;i++){ 
   
        ListNode newnode = new ListNode(i);  //创建新的结点
        nextNode.next = newnode;     // 把新结点连起来
        nextNode = nextNode.next; //把结点往后移
    }//nextNode指向最后一个结点
      nextNode = nodestr;  //重新指向首结点
    //打印
    while(nextNode != null){ 
   
        System.out.println("第一个结点值:"+ nextNode.val);
        nextNode = nextNode.next;
    }

要点:
1.创建首结点。
2.创建一个类似c指针的东西nextnode,用来指向下一个结点。

插入结点

 while(nextNode != null){ 
   
   if(nextNode.val == 5){ 
   
     ListNode addnode = new ListNode(99); //创建新的结点
     ListNode next = nextNode.next; //保存下一个结点的信息
     nextNode.next = addnode;  //插入新结点
     addnode.next = next;
   }
   nextNode = nextNode.next;
}

要点:
在这里插入图片描述

例题:

给定一个链表head,删除链表的倒数第 n 个节点,并且返回链表的头结点


public class ListNode { 
   
      int val;
      ListNode next;
      ListNode() { 
   }
      ListNode(int val) { 
    this.val = val; }
      ListNode(int val, ListNode next) { 
    this.val = val; this.next = next; }
  }

class Solution { 
   
    public ListNode removeNthFromEnd(ListNode head, int n) { 
   
        ListNode start = new ListNode(0,head);  //新建一个头结点之前的结点指向头节点
        ListNode nextnode = new ListNode();
        int length = getLength(head);      //获取链表长度
        nextnode = start;
        for(int i = 1;i< length-n+1;i++){ 
   
           nextnode = nextnode.next;    //移动指针
        }
        nextnode.next = nextnode.next.next;   //删除指定结点
        ListNode res = start.next;
        return res;
   }
      public int getLength(ListNode head){ 
   
         int length = 0;
          while(head != null){ 
   
             length++;
             head = head.next;
          }
         return length;
      }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126512.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • linux 虚拟ip 漂移,keepalived 虚拟ip切换

    linux 虚拟ip 漂移,keepalived 虚拟ip切换简介 KeepalivedKe 是运行在 lvs 之上 是一个用于做双机热备 HA 的软件 它的主要功能是实现真实机的故障隔离及负载均衡器间的失败切换 提高系统的可用性 虚拟 ip 虚 IP 就是一个未分配给真实主机的 IP 也就是说对外提供数据库服务器的主机除了有一个真实 IP 外还有一个虚 IP 使用这两个 IP 中的任意一个都可以连接到这台主机 所有项目中数据库链接一项配置的都是这个虚 IP

    2025年8月2日
    1
  • centos7安装python3.7_python软件安装步骤

    centos7安装python3.7_python软件安装步骤Centos7安装Python3.8详细教程Centos7安装Python3.8详细教程安装编译相关工具下载python安装包编译安装python创建软连接更改yum配置Centos7安装Python3.8详细教程安装编译相关工具yum-ygroupinstall”Developmenttools”yum-yinstallzlib-develbzip2-developenssl-develncurses-develsqlite-develreadline-develtk-d

    2022年9月24日
    0
  • 您的计算机无法访问dota2服务器,提示“已连接至DOTA2游戏协调服务器,正在登陆中”该如何解决?…「建议收藏」

    您的计算机无法访问dota2服务器,提示“已连接至DOTA2游戏协调服务器,正在登陆中”该如何解决?…「建议收藏」《DOTA2》游戏,是一款RPG有些,在国内的玩家有很多,最近有位小伙伴打算在Win10电脑上与朋友一起玩《DOTA2》,却一直提示“已连接至DOTA2游戏协调服务器,正在登陆中”,无法顺利进入该游戏,很是郁闷,所以来问小编该如何解决?今天,小编就带大家一起去了解一下Win10电脑玩《DOTA2》提示“已连接至DOTA2游戏协调服务器,正在登陆中”的解决方案。解决方案一:1、开始按钮在搜索中输入C…

    2022年5月17日
    222
  • cannot convert the variable type_lingodeer怎么弄成中文

    cannot convert the variable type_lingodeer怎么弄成中文python报错如下:TypeError:cannotunpacknon-iterableNoneTypeobject解决方法:报错的原因是函数返回值得数量不一致,查看函数返回值数量和调用函数时接收返回值的数量是不是一致,修改一致即可…

    2025年7月25日
    0
  • 坦克大战

    坦克大战

    2022年1月6日
    53
  • 【转】分区容错性「建议收藏」

    【转】分区容错性「建议收藏」http://book.51cto.com/art/201203/323908.htm1.6.3  分区容错性最为常见的系统部署方案之一就是在一台巨大的中央服务器上安装一个数据库供其他东西访问。这可以让你的系统具有一致性,但是扩展性又如何呢?分区容错性能让你的系统在部分断网的情况下仍然可以完全正常地运转。要实现完全分区容错,系统就必须在任何情况下都能正常运转,除非完全断网。分区容错性几乎…

    2022年7月25日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号