递归求解单链表中的最大值


 1 #include<iostream>
 2 using namespace std;
 3 
 4 typedef struct LNode {
 5     int data;
 6     LNode *next;
 7 }Lnode, *LinkList;
 8 
 9 bool InitList(LinkList &L)
10 {
11     L = new LNode;
12     L->next = NULL;
13     return true;
14 }
15 
16 void Create_List_R(LinkList &L, int n)
17 {
18     LinkList r, p;
19     r = L;
20     while (n--)
21     {
22         p = new LNode;
23         cin >> p->data;
24         p->next = NULL;
25         r->next = p;
26         r = p;
27     }
28 }
29 
30 int Find_Max(LinkList L)//递归求解单链表中的最大值
31 {
32     int max;
33     LinkList p = L;
34     if (p->next == NULL)
35         return p->data;
36     else {
37         max = Find_Max(p->next);
38         return p->data >= max ? p->data : max;
39     }
40 }
41 
42 int main()
43 {
44     LinkList L;
45     int n;
46     while (cin >> n)
47     {
48         if (n == 0) break;
49         InitList(L);
50         Create_List_R(L, n);
51         cout << Find_Max(L) << endl;
52     }
53     return 0;
54 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM