删除链表中的尾部结点
/******************************************************
*
* name : DelTailNode
* function : 删除链表尾部结点
* argument
* @head :链表头结点的地址
*
* retval : 成功返回1,失败返回0
* author : Dazz
* date : 2024/4/22
* note : None
*
* *******************************************************/
bool DelTailNode(LinkList_t *head, )
{
// 错误处理
if (NULL == head)
{
printf("请输入有效地址\n");
return false;
}
// 将链表的头结点做备份
LinkList_t *temp1 = head;
// 将链表的头结点的直接后继做备份
LinkList_t *temp2 = head->next;
// 遍历链表,找到尾部结点和尾部结点的直接前驱
while (temp2->next || temp1->next)
{
temp1 = temp1->next;
temp2 = temp2->next;
}
// 将尾部结点的直接前驱的指针域指向NULL
temp1->next = NULL;
// 删除尾部结点
free(temp2);
return true;
}
标签:尾部,结点,head,next,链表,temp1
From: https://www.cnblogs.com/Dazz24/p/18151516