以下是使用C语言实现在单链表中找到值最大的节点的示例代码:

#include <stdio.h>
#include <stdlib.h>

struct Node {
    int data;
    struct Node *next;
};

/* 创建单链表 */
struct Node *createLinkedList(int n) {
    struct Node *head = NULL, *prev = NULL;
    for (int i = 0; i < n; i++) {
        struct Node *node = (struct Node *)malloc(sizeof(struct Node));
        printf("请输入第%d个节点的值:", i+1);
        scanf("%d", &(node->data));
        node->next = NULL;
        if (prev == NULL) {
            head = node;
        } else {
            prev->next = node;
        }
        prev = node;
    }
    return head;
}

/* 遍历单链表并找到最大值的节点 */
struct Node *findMaxNode(struct Node *head) {
    struct Node *maxNode = head;
    struct Node *p = head;
    while (p != NULL) {
        if (p->data > maxNode->data) {
            maxNode = p;
        }
        p = p->next;
    }
    return maxNode;
}

/* 主函数 */
int main() {
    int n;
    printf("请输入单链表的长度:");
    scanf("%d", &n);
    struct Node *head = createLinkedList(n);
    struct Node *maxNode = findMaxNode(head);
    printf("值最大的节点是:%d\n", maxNode->data);
    return 0;
}

运行结果:

请输入单链表的长度:5
请输入第1个节点的值:3
请输入第2个节点的值:6
请输入第3个节点的值:2
请输入第4个节点的值:8
请输入第5个节点的值:1
值最大的节点是:8

在上面的示例代码中,我们首先创建了一个单链表,然后使用 findMaxNode 函数遍历单链表并找到值最大的节点。在遍历过程中,我们使用 maxNode 变量来记录当前遍历到的最大值节点。如果当前节点的值比 maxNode 的值更大,我们就更新 maxNode 的值为当前节点。最后返回 maxNode 即可。


原文地址: https://www.cveoy.top/t/topic/zwZ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录