设计一个通过一趟遍历在单链表中确定最大值的结点的算法
时间: 2023-04-10 16:04:10 浏览: 268
查找链表中值最大的节点
可以使用一个变量来记录当前已经遍历过的结点中的最大值,然后在遍历过程中不断更新这个最大值,最终得到最大值所在的结点。具体实现可以参考以下代码:
ListNode* findMaxNode(ListNode* head) {
if (head == nullptr) {
return nullptr;
}
ListNode* maxNode = head;
ListNode* curNode = head->next;
while (curNode != nullptr) {
if (curNode->val > maxNode->val) {
maxNode = curNode;
}
curNode = curNode->next;
}
return maxNode;
}
其中,ListNode 是单链表的结点类型,val 是结点的值,next 是指向下一个结点的指针。函数的返回值是最大值所在的结点指针。
阅读全文