一、结点的定义
typedef int DataType;
typedef struct ListNode//定义结点
{
DataType data;
struct ListNode* next;
}ListNode,*PListNode;
typedef struct PList//定义一个成员是指向结点的指针的结构体
{
PListNode PHead;
}PList,*PList;
二、函数实现
1.删除一个无头单链表的非尾结点,只知道这个结点的位置
//思路:将该节点下一个结点的值赋给这个结点,然后把下一个结点删除;
//1.删除链表非尾结点
void EraseNotTail(PListNode pos)
{
PListNode del=NULL;
assert(pos->next!=NULL);//判断
del=pos->next;//记录下一个结点
pos->data=del->data;//将下一个结点的值赋给pos
pos->next=del->next;
free(del);
}