下面是一个简单的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 实现的代码:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)