题目地址:https://pintia.cn/problem-sets/15/problems/728
本题按照题目要求仔细模拟即可,需要注意的就是要插入到头节点之前以及删除头节点的情况特判处理
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
List Insert(List L, ElementType X, Position P) { if(P == L) { List q = (List)malloc(sizeof(List)); q->Data = X; q->Next = L; return q; } List q = L; while(q) { if(q->Next == P) { List p = (List)malloc(sizeof(List)); p->Next = q->Next; p->Data = X; q->Next = p; return L; } q = q->Next; } printf("Wrong Position for Insertion "); return ERROR; } List Delete(List L, Position P) { if(L == P) { return L->Next; } List q = L; while(q) { if(q->Next == P) { q->Next = q->Next->Next; return L; } q = q->Next; } printf("Wrong Position for Deletion "); return ERROR; } Position Find(List L, ElementType X) { List q; q = L; while(q != NULL) { if(q->Data == X) { return q; } q = q->Next; } return ERROR; }