在一个带头结点的单链表中,头指针为L,如何把倒数第二个结点,插入到头结点的后面第一个工作结点的前面,写出关键伪代码。
时间: 2024-04-29 22:23:12 浏览: 50
数据结构实验原代码
1. 先遍历链表找到倒数第二个结点p和尾结点q;
2. 如果p存在,则执行以下操作:
- 将p的next指针指向NULL;
- 将p插入到头结点L的后面,即将p的next指针指向L的next指针指向的结点;
- 如果L的next指针指向NULL,即链表为空,则将p的next指针指向NULL;
- 否则,将L的next指针指向p;
3. 如果p不存在,则什么也不做。
关键伪代码如下:
```
p = L->next;
q = L;
while (p->next != NULL) {
q = p;
p = p->next;
}
if (p != L && p != q) {
q->next = NULL;
p->next = L->next;
L->next = p;
if (p->next == NULL) {
p->next = NULL;
}
}
```
阅读全文