插入节点时间复杂度,因为是静态链表,所以查找插入节点的时间复杂度为
删除节点需要头节点开始查找, 再删除
优点是高效的同时不需要手动释放内存,缺点是 如果很小,空间浪费比较大,为

a[p] => p->next && p->val; 下标就是指针,里面的值既代表val也代表下一个节点指针
exp: phead = 0; a[pHead] = 2; 表示pHead是头节点指针,值是2,下一个节点指针是2。
所以在插入的时候,这里的数组既有 链表 的作用,也有 哈希 的作用。

#include <bits/stdc++.h>
using namespace std;
int a[10005];
int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    int n, head;
    while (cin >> n >> head) {
        fill(a, a + 10005, -1);
        a[0] = head;
        for (int i = 1; i < n; i++) {
            int cur, pre;
            cin >> cur >> pre;
            int nx = a[pre];
            a[pre] = cur;
            a[cur] = nx;
        }
        int del;
        cin >> del;
        int pHead = 0, pcur = pHead;
        while (pcur != -1) {
            int nx = a[pcur];
            if (nx == del) a[pcur] = a[nx];
            else pcur = a[pcur];
        }
        pcur = pHead;
        while (a[pcur] != -1) {
            cout << a[pcur] << " ";
            pcur = a[pcur];
        }
        cout << endl;
    }
    return 0;
}