三、JAVA链表的实现——ListNode

本文介绍了如何在Java中实现链表数据结构,重点讲解了ListNode类的定义和使用。通过初始化ListNode,创建并遍历链表,展示了如何利用ListNode构建链表节点,并提供了打印链表的辅助方法。文章还强调了ListNode中的value和next属性,以及不同构造方法的应用场景。
摘要由CSDN通过智能技术生成

三、JAVA链表的实现——ListNode

1.链表概念

链表是一种数据结构:由数据和指针构成,链表的指针指向下一个节点。 链表 是用Java自定义实现的链表结构,在Java中用需要自己定义一个ListNode类来生成链表对象。

2.ListNode

编程题当中,当需要用到ListNode的时候需要这样初始化,同时,下面的代码默认ListNode中装的是int,这里的int也可以改为其他,如char,string

  • 在节点ListNode定义中,定义为节点为结构变量。
  • 节点存储了两个变量:value 和 next。value 是这个节点的值,next 是指向下一节点的指针,当 next 为空指针时,这个节点是链表的最后一个节点。
  • 注意注意val只代表当前指针的值,比如p->val表示p指针的指向的值;而p->next表示链表下一个节点,也是一个指针。
  • 构造函数包含两个参数 _value 和 _next ,分别用来给节点赋值和指定下一节点
  • 也有只有一个参数的构造方法,一般是存值,然后指针会默认指向null,可以应用于哨兵结点等
//初始化
class ListNode {        //类名 :Java类就是一种自定义的数据结构
    int val;            //成员变量:数值
    ListNode next;      //对象 :引用下一个节点对象。在Java中没有指针的概念,Java中的引用和C语言的指针类似
    

ListNode(int val){   //一个参数的构造方法   
    this.val=val;     //把接收的参数赋值给当前类的val变量
}
ListNode(int val, ListNode next) { this.val = val; this.next = next; }//这个就是包含两个参数的构造方法

}
//创建及遍历链表
class ListNode {        
    int val;           
    ListNode next;      

ListNode(int val){ 
    this.val=val;   
}
}

class Test{
    public static void main(String[] args){
        

ListNode Listnode = new ListNode(0);    //创建首节点,节点的val是0.
ListNode nextNode;                     //声明一个变量用来在移动过程中指向当前节点
nextNode=Listnode;                      //指向首节点,这样两个结点的指针指向同一个结点

//创建链表
for(int i=1;i<10;i++){
    ListNode node = new ListNode(i);  //生成新的节点
    nextNode.next=node;               //把新节点连起来
    nextNode=nextNode.next;           //当前节点往后移动
}       //当for循环完成之后 nextNode指向最后一个节点,

nextNode=Listnode;                     //重新赋值让它指向首节点
print(nextNode);                      //打印输出

}

//打印输出方法
static void print(ListNode listNoed){
    //创建链表节点
    while(listNoed!=null){
        System.out.println("节点:"+listNoed.val);
        listNoed=listNoed.next;
    }
    System.out.println();
}

}
  • 14
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值