设计一个算法,通过一趟遍历在单链表中确定值最大的结点的代码
时间: 2023-05-18 17:05:25 浏览: 209
查找链表中值最大的节点
1. 定义一个变量max,用于存储当前最大值,初始值为链表的第一个节点的值。
2. 定义一个变量maxNode,用于存储当前最大值所在的节点,初始值为链表的第一个节点。
3. 从链表的第二个节点开始遍历,比较每个节点的值与max的大小,如果大于max,则更新max和maxNode。
4. 遍历完链表后,maxNode即为值最大的节点。
算法实现:
```
Node* findMaxNode(Node* head) {
if (head == nullptr) {
return nullptr;
}
Node* maxNode = head;
int max = head->val;
Node* p = head->next;
while (p != nullptr) {
if (p->val > max) {
max = p->val;
maxNode = p;
}
p = p->next;
}
return maxNode;
}
```
时间复杂度为O(n),其中n为链表的长度。
阅读全文