设单链表具有头结点,且表长大于0。试设计一个算法,通过一趟遍历返回单链表中结点数据 域最大值 (int 型数据)。函数声明如下,并加入简要的注释或说明
时间: 2024-02-29 14:51:09 浏览: 53
有头结点的单链表表的实现
```
int maxElem(Node* head);
```
算法思路:
1. 首先定义一个最大值变量 `max`,初始值为头结点后面第一个结点的数据域值。
2. 从头结点开始遍历单链表,依次比较每个结点的数据域值与 `max` 的大小关系,如果当前结点的数据域值大于 `max`,则更新 `max` 的值。
3. 遍历结束后,返回 `max` 的值即可。
算法实现:
```c++
int maxElem(Node* head) {
int max = head->next->data; // 初始化最大值为第一个结点的数据域值
Node* p = head->next; // 从第一个结点开始遍历
while (p != nullptr) {
if (p->data > max) {
max = p->data; // 更新最大值
}
p = p->next; // 移动到下一个结点
}
return max;
}
```
阅读全文