彻底理解java链表中的节点Node
2023-12-14 02:02:55
彻底理解java链表中的节点Node
链表(linked list),对应java中的LinkedList类型(基于双向链表实现)。
在c/cpp中通过"结构体+指针"实现,但是java中没有指针,所以要使用类来实现。
我们先来看cpp中的Node实现:可以发现,next中存放的是下一个Node对象的地址。
struct Node
{
/* data */
int val;
struct Node* next;
//next是结构体指针类型,存放的是下一个node的地址
};
我们再来看java中node的实现:
public class Node {
int data;
Node next;
//注意这里的next是Node类型
public Node(int data)
{
this.data=data;
this.next=null;
}
}
乍一看,next是Node类型,那么它到底存储的是什么值呢?难道是下一个对象本身?
答案:next存放的,也是下一个Node对象的地址
代码验证:
public class Main {
public static void main(String[] args) {
Node node1 = new Node(11);
Node node2 = new Node(22);
Node node3 = new Node(33);
System.out.println("node1="+node1);
System.out.println("node2="+node2);
System.out.println("node3="+node3);
node1.next=node2;
node2.next=node3;
System.out.println("node1.next="+node1.next);
System.out.println("node2.next="+node2.next);
}
}
输出:
node1=org.example.Node@566776ad
node2=org.example.Node@6108b2d7
node3=org.example.Node@1554909b
node1.next=org.example.Node@6108b2d7
node2.next=org.example.Node@1554909b
文章来源:https://blog.csdn.net/renliaoCSDN/article/details/134910946
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!