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;
      }
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • 常用BAPI清单

    常用BAPI清单SAP项目中开发用到的BAPI:MM模块1、BAPI_MATERIAL_SAVEDATA创建物料主数据注意参数EXTENSIONIN的使用,可以创建自定义字段例如WA_BAPI_TE_MARA-MATERIAL=ITAB_UP-MATNR.T_EXTENSIONIN-STRUCTURE=’BAPI_TE_MARA’.T_EXTENSIONIN-…

  • matlab画出三角函数图像_matlab二元函数绘图

    matlab画出三角函数图像_matlab二元函数绘图在matlab中绘制二元函数图像矩形区域上的绘制考虑f(x,y)=2×2+2y2+4xy−3y−3x+1f(x,y)=2x^2+2y^2+4xy-3y-3x+1f(x,y)=2×2+2y2+4xy−3y−3x+1在矩形区域[0,1]×[0,1][0,1]\times[0,1][0,1]×[0,1]上的图像。直接上代码:%meshf(x,y)onacertaindomainclear;clc;%generatedomainX=0:

  • sql语句练习50题(Mysql版)

    sql语句练习50题(Mysql版)习题来源于网络,sql语句是自己写的。欢迎指正。表名和字段–1.学生表Student(s_id,s_name,s_birth,s_sex)–学生编号,学生姓名,出生年月,学生性别–2.课程表Course(c_id,c_name,t_id)––课程编号,课程名称,教师编号–3.教师表Teacher(t_id,t_name)–教师编号,教师姓名–4

  • ASPCMS_net开源项目

    ASPCMS_net开源项目1.We7CMS【做的还不错,需要保留版权】We7CMS是由西部动力开发的一款充分发掘互联网Web2.0(如博客、RSS等)的信息组织优势,将其理念利用到政府企事业网站的构建、组织、管理中的网站建设和管理方面的产品。系统目标:叫创建网站变成一种简单的艺术创作,简单如创建博客。系统特点简单至上;“一看就会”是我们的创作理念,如果在哪里您看了不会用,请您告诉我们。潜力无限;来自

  • gradient boosting classifier_boosting算法有哪些

    gradient boosting classifier_boosting算法有哪些最近项目中涉及基于GradientBoostingRegression算法拟合时间序列曲线的内容,利用python机器学习包 scikit-learn中的GradientBoosti

  • python字符串中某个字符修改_Python实现字符串中某个字母的替代功能

    python字符串中某个字符修改_Python实现字符串中某个字母的替代功能今晚想实现这样一个功能:将输入字符串中的字母“i”变成字母“p”。当时想的很简单,直接用for循环遍历,然后替代,出问题的代码如下:name=input(‘随便输入一堆字符吧…’)#name=list(name)name=””.join(name)j=0foriinrange(len(name)):ifname[i]==’i’:name[i]=’p’j=…

发表回复

您的电子邮箱地址不会被公开。

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