public class LinkedListExample {
public static void main(String[] args) {
LinkedList linkedList = new LinkedList();
linkedList.addAtHead(1);linkedList.addAtHead(2);linkedList.addAtHead(3);
linkedList.addAtTail(4);linkedList.addAtTail(5);
// 输出链表的值
ListNode curr = linkedList.head;
while (curr != null) {
System.out.println(curr.val);
curr = curr.next;
}
}
}
class LinkedList {
ListNode head;
// 头插法
public void addAtHead(int val) {
ListNode newNode = new ListNode(val);
newNode.next = head; // 新节点的next指向当前的头节点
head = newNode; // 更新头指针为新节点
}
// 尾插法
public void addAtTail(int val) {
ListNode newNode = new ListNode(val);
if (head == null) {
// 如果链表为空,直接插入新节点作为头节点
head = newNode;
return;
}
ListNode curr = head;
while (curr.next != null) {
curr = curr.next; // 遍历链表找到最后一个节点
}
curr.next = newNode; // 将最后一个节点的next指针指向新节点
}
}
class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
java单链表的头插法和尾插法
最新推荐文章于 2024-01-27 21:49:25 发布