对于不带头结点的单链表 L,设计一个递归算法返回第一个值为 x 的结点的地址,没有这样的结点时返回 NULL。
时间: 2023-05-20 17:01:40 浏览: 206
编写算法依次访问无头结点的单循环链表.doc
5星 · 资源好评率100%
以下是递归算法的代码实现:
```
Node* findNode(Node* head, int x) {
if (head == NULL) {
return NULL;
}
if (head->val == x) {
return head;
}
return findNode(head->next, x);
}
```
其中,Node 是链表结点的结构体,包含 val 和 next 两个成员变量。递归函数 findNode 的参数为链表头结点 head 和要查找的值 x,返回值为第一个值为 x 的结点的地址,如果没有这样的结点则返回 NULL。在递归过程中,如果当前结点的值等于 x,则返回该结点的地址;否则递归查找下一个结点。如果链表为空,则返回 NULL。
阅读全文