c++ 删除非空的单循环链表的表尾结点。
时间: 2024-05-10 16:21:27 浏览: 155
带头结点的单循环链表-数据结构线性表
单循环链表的表尾结点是指指向头结点的结点,因此删除表尾结点需要遍历链表找到指向头结点的前一个结点,然后将该结点的next指针指向头结点即可。
具体步骤如下:
1. 如果链表为空,直接返回。
2. 如果链表只有一个结点,将头结点置为NULL即可。
3. 遍历链表,找到指向头结点的前一个结点,记为prev。
4. 将prev的next指针指向头结点,即删除了表尾结点。
代码实现如下:
```
void deleteTailNode(Node* head) {
if (head == NULL) {
return;
}
Node* prev = head;
Node* cur = head->next;
while (cur != head) {
prev = cur;
cur = cur->next;
}
prev->next = head;
free(cur);
}
```
阅读全文