Java定义 MyLinkedList 类,实现链表的结构,包括: 实现结点类
时间: 2024-05-11 22:18:48 浏览: 126
Linked_List实现 链表
好的,下面是一个简单的 MyLinkedList 类的实现,包括结点类:
```java
class Node {
int val;
Node next;
public Node(int val) {
this.val = val;
this.next = null;
}
}
class MyLinkedList {
Node head;
int size;
public MyLinkedList() {
this.head = null;
this.size = 0;
}
public void addAtHead(int val) {
Node node = new Node(val);
node.next = head;
head = node;
size++;
}
public void addAtTail(int val) {
Node node = new Node(val);
if (head == null) {
head = node;
} else {
Node cur = head;
while (cur.next != null) {
cur = cur.next;
}
cur.next = node;
}
size++;
}
public void addAtIndex(int index, int val) {
if (index > size) {
return;
}
if (index == 0) {
addAtHead(val);
} else if (index == size) {
addAtTail(val);
} else {
Node node = new Node(val);
Node cur = head;
for (int i = 0; i < index - 1; i++) {
cur = cur.next;
}
node.next = cur.next;
cur.next = node;
size++;
}
}
public void deleteAtIndex(int index) {
if (index < 0 || index >= size) {
return;
}
if (index == 0) {
head = head.next;
} else {
Node cur = head;
for (int i = 0; i < index - 1; i++) {
cur = cur.next;
}
cur.next = cur.next.next;
}
size--;
}
public int get(int index) {
if (index < 0 || index >= size) {
return -1;
}
Node cur = head;
for (int i = 0; i < index; i++) {
cur = cur.next;
}
return cur.val;
}
public int size() {
return size;
}
}
```
在这里,我们定义了一个 Node 类来表示链表中的节点。每个节点包括一个整数值和指向下一个节点的指针。
然后,我们定义了 MyLinkedList 类来实现链表的结构。它包括一个头指针和一个整数值表示链表的大小。我们可以通过实现以下方法来操作链表:
- `addAtHead(int val)`:在链表的头部插入一个值为 `val` 的节点。
- `addAtTail(int val)`:在链表的尾部插入一个值为 `val` 的节点。
- `addAtIndex(int index, int val)`:在链表的第 `index` 个位置插入一个值为 `val` 的节点。
- `deleteAtIndex(int index)`:删除链表中第 `index` 个节点。
- `get(int index)`:返回链表中第 `index` 个节点的值。
- `size()`:返回链表的大小。
阅读全文