JAVA单链表中结点类用private修饰,怎么用在链表类里?

如题所述

在Java单链表中,节点类通常包含两个属性:一个存储数据的变量和一个指向下一个节点的变量。为了保证数据的封装性,通常会将这两个属性都用private修饰,然后提供对应的getter和setter方法来访问和修改这些属性。
下面是一个简单的Java单链表节点类示例:
public class ListNode {
private int val;
private ListNode next;

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

public int getVal() {
return val;
}

public void setVal(int val) {
this.val = val;
}

public ListNode getNext() {
return next;
}

public void setNext(ListNode next) {
this.next = next;
}
}
在链表类中,我们需要创建一个头节点来表示整个链表的起始位置。可以将链表类的定义如下:
public class LinkedList {
private ListNode head;

public LinkedList() {
this.head = null;
}

// 添加节点到链表尾部
public void addNode(int val) {
ListNode newNode = new ListNode(val);
if (head == null) {
head = newNode;
} else {
ListNode cur = head;
while (cur.getNext() != null) {
cur = cur.getNext();
}
cur.setNext(newNode);
}
}

// 遍历链表并输出节点值
public void traverse() {
ListNode cur = head;
while (cur != null) {
System.out.print(cur.getVal() + " ");
cur = cur.getNext();
}
System.out.println();
}
}
在链表类中,我们将head属性也用private修饰,并提供对应的getter和setter方法来访问和修改head属性。在addNode方法中,我们首先判断链表是否为空,如果为空,直接将新节点作为头节点;否则,遍历链表找到尾节点并将新节点接在其后面。在traverse方法中,我们遍历整个链表并输出每个节点的值。
使用时,可以创建一个新的LinkedList对象,然后调用其addNode方法添加节点,最后调用traverse方法遍历链表并输出每个节点的值。例如:
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.addNode(1);
list.addNode(2);
list.addNode(3);
list.traverse();
}
这段代码会输出:1 2 3。
温馨提示:答案为网友推荐,仅供参考
相似回答