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)
上一篇 2022年4月17日 下午6:20
下一篇 2022年4月17日 下午6:20


相关推荐

  • steam 集换式卡牌挂卡软件 ASF Linux服务器搭建

    steam 集换式卡牌挂卡软件 ASF Linux服务器搭建ASF 软件在服务器上搭建和使用教程 本篇教程基于 centos7 和 nginx 使用 apache 的兄弟可以作为参考

    2026年3月18日
    2
  • 发送udp数据包

    发送udp数据包nbsp 在 Socket 编程中 发送数据报文可供使用的 API 函数有 send sendto 和 sendmsg 下面是关于前两个系统调用的原型 includessize tsend intsocket constvoid buffer size tlength intflags nbsp nbsp nbsp nbsp 请注意它的返回值的类型 ssize t 其含义是 signedsize 从内核代码中 我们可以看

    2026年3月18日
    2
  • ultraedit激活许可证密钥 程序员必备辅助开发编辑器

    ultraedit激活许可证密钥 程序员必备辅助开发编辑器UltraEdit 是一套功能强大的文本编辑器 可以编辑文本 十六进制 ASCII 码 完全可以取代记事本 如果电脑配置足够强大 内建英文单字检查 C 及 VB 指令突显 可同时编辑多个文件 而且即使开启很大的文件速度也不会慢 UltraEdit 的界面如下图所示 UltraEdit 特征轻松打开和编辑大文件 4GB 及以上 文件和数据排序多插入符号编辑和多选集成的 FTP 客户端 支持 FTP SFTP 和 FTPS 列 块 模式编辑集成的 SSH telnet 客户端强大的搜索功能 查找和替换文

    2026年3月26日
    3
  • JDK安装包和Mysql安装包整理

    肯定有许多许多小伙伴在找jdk和MySQL这些东西的安装包,去官网下载有特别慢,所以想在网上找一下,来吧,看完总有一款是你喜欢的。。。。JDK安装包jdk-7u80-windows-x64.exe(jdk1.7win64位)jdk-7u80-windows-x86.exe(jdk1.7win32位)jdk-7u80-linux-i586.tar.gz(jdk1.7Li…

    2022年4月8日
    396
  • RPG Maker MV攻略_游戏解包工具

    RPG Maker MV攻略_游戏解包工具该文章最新版本请前往:https://www.crowsong.xyz/127.html前言使用Petschko'sRPG-Maker-MVFile-Decrypter进行解包使用P

    2022年8月6日
    168
  • SQLyog连接mysql报错:2003

    SQLyog连接mysql报错:2003以管理员身份打开 cmd 运行 netstartmysq 启动服务 启动是没有问题的 百度了一下说是端口号被更改 showglobalva port 可以查到 查了之后也没有问题 后来把 SQL 主机地址改成 localhost 就正确了

    2026年3月17日
    1

发表回复

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

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