当前位置:   article > 正文

数据结构单链表最大值_递归算法,返回单链表l中的最大结点值

递归算法,返回单链表l中的最大结点值

2022.10.24单链表最大值。


任务描述

本关任务:给定一个不带附加头结点的单链表L,返回单链表中最大值结点的指针。

编程要求

根据提示,在右侧编辑器补充完成函数LinkNode *findMaxNode(LinkNode *L)代码,返回单链表L中最大值结点的指针。

测试说明

平台会对你编写的代码进行测试:

测试输入
5
3 7 9 2 8
预期输出
最大值: 9

开始你的任务吧,祝你成功!

C++代码

#include <bits/stdc++.h>
using namespace std;

#include "linklist.h" //包含单链表基本运算及实现

/**
 * 递归求单链表最大值。
 * L为不带附加头结点的单链表的头指针。
 * 返回值:指向具有最大值的结点的指针。
 */
LinkNode *findMaxNode(LinkNode *L)
{
    //请在下面填写代码
    /**********************Begin**********************/
    	if(L->next== NULL)
		return L;
	else {
		LinkNode *maxp;
		maxp = findMaxNode(L->next);
		if(L->data > maxp->data)
			return L;
		else
			return maxp;
	}
    /***********************End***********************/
}

//请勿改动下面的代码
int main(int argc, char *argv[])
{
    int n;
    cin >> n;            //输入n
    int *a = new int[n]; //申请长度为n的数组
    for (int i = 0; i < n; i++)
        cin >> a[i];
    LinkNode *L = NULL;
    CreateList(L, a, n);
    // DispList(L);
    LinkNode *ptr_max = findMaxNode(L);
    if (ptr_max)cout << "最大值: " << ptr_max->data << endl;
    else cout << "error\n";

    delete[] a;          //释放数组
    return 0;
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/黑客灵魂/article/detail/818804
推荐阅读
相关标签
  

闽ICP备14008679号