您的位置:首页 > 职场人生

链表面试题(一)---删除一个无头单链表的非尾结点

2017-05-16 22:45 435 查看
一、结点的定义

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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试题 单链表 链表
相关文章推荐