在带头结点的单链表L中,查找最后一个小于e的结点,返回其地址
时间: 2023-05-27 16:07:50 浏览: 74
3-2 试编写一个算法,在带表头结点的单链表中寻找第i个结点.doc
算法步骤:
1. 如果L为空链表,直接返回NULL。
2. 找到L的第一个结点p。
3. 如果p的下一个结点的值大于等于e,直接返回NULL。
4. 记录最后一个小于e的结点pre,将pre初始化为L。
5. 在循环中遍历链表,如果p的值小于e,则将pre指向p。
6. 将p指向p的下一个结点。
7. 当p为空时,返回pre的地址。
代码实现如下:
```
struct ListNode* searchLastLessThan(struct ListNode* L, int e) {
if (L == NULL) return NULL;
struct ListNode* p = L->next;
struct ListNode* pre = L;
while (p != NULL) {
if (p->val >= e) break;
pre = p;
p = p->next;
}
return pre;
}
```
阅读全文