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

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

在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。

在单链表中插入新节点的算法思想是:

1.创建一个新节点,包含要插入的数据。

2.从链表的头部开始遍历链表,找到要插入位置的前一个节点。

3.将新节点的 next 指针指向前一个节点的 next 指针所指向的节点。

4.将前一个节点的 next 指针指向新节点。

下面是用 Java 实现的代码:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11620343.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存