/* 求单链表值最大的结点 / int getMaxNode(LinkNode head) { if (head == NULL) return INT_MIN; int first = head->data; int m = getMaxNode(head->next); if (m > first) return m; else return first; }

该代码通过递归方式找到单链表中的最大值。

算法思路:

  1. 首先判断链表是否为空,如果是则返回最小值 INT_MIN。
  2. 否则,获取头结点的值 first。
  3. 递归调用 getMaxNode 函数,获取链表剩余部分的最大值 m。
  4. 比较 first 和 m,返回两者中较大的值。

代码解释:

  • getMaxNode(LinkNode* head) 函数接受一个指向链表头结点的指针作为参数。
  • if (head == NULL) 语句用于判断链表是否为空,如果是则返回 INT_MIN。
  • int first = head->data; 获取头结点的值 first。
  • int m = getMaxNode(head->next); 递归调用函数,获取链表剩余部分的最大值 m。
  • if (m > first) 语句用于比较 first 和 m,返回两者中较大的值。

示例:

假设有一个单链表,其元素值为 [1, 3, 2, 4, 5]。调用 getMaxNode(head) 函数后,将返回 5。


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

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