您可以按照以下示例编写一个名为"my_find_node"的函数,该函数返回第一个节点的地址。
#include
#include
typedef struct Node {
int data;
struct Node* next;
} Node;
Node* my_find_node(Node* head, int value) {
Node* current = head;
while (current != NULL) {
if (current->data == value) {
return current;
}
current = current->next;
}
return NULL;
}
int main() {
// 创建链表
Node* head = (Node*)malloc(sizeof(Node));
Node* second = (Node*)malloc(sizeof(Node));
Node* third = (Node*)malloc(sizeof(Node));
head->data = 1;
head->next = second;
second->data = 2;
second->next = third;
third->data = 3;
third->next = NULL;
// 查找节点
int target_value = 2;
Node* result = my_find_node(head, target_value);
if (result != NULL) {
printf("找到了值为%d的节点\n", target_value);
} else {
printf("未找到值为%d的节点\n", target_value);
}
// 释放内存
free(head);
free(second);
free(third);
return 0;
}
在上述代码中,我们定义了一个名为my_find_node
的函数,它接受一个指向链表头节点的指针head
和一个要查找的值value
作为参数。函数通过遍历链表来查找具有指定值的节点。如果找到了该节点,则返回该节点的地址;如果未找到该节点,则返回NULL
。
在main
函数中,我们创建了一个包含3个节点的链表,并使用my_find_node
函数查找值为2的节点。根据返回结果,我们输出相应的信息。
最后,我们释放了动态分配的内存,以避免内存泄漏。