public class MyLinkedList
{
int size;
ListNode head;
public MyLinkedList()
{
size = 0;
head = new ListNode(0);
}
private class ListNode
{
int val;
ListNode next;
public ListNode(int num)
{
val = num;
}
}
private void addAtHead(int val)
{
addAtIndex(0, val);
}
private void addAtTail(int val)
{
addAtIndex(size, val);
}
private void addAtIndex(int val, int index)
{
if (index > size) return;
if (index < 0) index = 0;
++size;
ListNode pred = head; // 创建一个新节点用以遍历至对应index的位置
for (int i = 0; i < index; i++) pred = pred.next;
ListNode toAdd = new ListNode(val);
toAdd.next = pred.next;
pred.next = toAdd;
}
private void deleteAtIndex(int index)
{
if (index < 0 || index > size) return;
size--;
ListNode pred = head;
for (int i = 0; i < index; i++) pred = pred.next;
pred.next = pred.next.next;
}
}
单链表(leetcode: 设计链表)
最新推荐文章于 2024-06-03 22:12:18 发布