当前位置:   article > 正文

用递归算法求点链表中的最大整数_用递归求链表最大值

用递归求链表最大值

算法:

  1. int maxLinkNode(LinkNode L,int max){
  2. if(L==NULL) //结束标志,如果L指向的当前结点为NULL,则返回最大值max
  3. return max;
  4. if(L->data>max){ //如果当前结点的整数大于max
  5. max=L->data; //就将当前结点的整数赋值给max
  6. return maxLinkNode(L->next,max);
  7. /*调用自身,并传入下一个结点的地址和当前最大值,进行递归*/
  8. }else{
  9. return maxLinkNode(L->next, max);
  10. /*如果当前结点的值不大于Max,调用自身,并传入下一个结点的地址和当前最大值,进行递归*/
  11. }
  12. }

测试:

  1. #include<stdio.h>
  2. typedef struct Node{
  3. int data;
  4. struct Node *next;
  5. }Node,*LinkNode;
  6. int maxLinkNode(LinkNode L,int max);
  7. int main(){
  8. LinkNode L;
  9. L=(LinkNode)malloc(sizeof(Node));
  10. L->next=NULL;
  11. int n;
  12. scanf("%d",&n);
  13. for(int i=0;i<n;i++){
  14. LinkNode p;
  15. p=(LinkNode)malloc(sizeof(Node));
  16. scanf("%d",&p->data);
  17. p->next=L->next;
  18. L->next=p;
  19. }
  20. int max=-3333;
  21. max=maxLinkNode(L->next,max);
  22. printf("%d",max);
  23. }
  24. int maxLinkNode(LinkNode L,int max){
  25. if(L==NULL)
  26. return max;
  27. if(L->data>max){
  28. max=L->data;
  29. return maxLinkNode(L->next,max);
  30. }else{
  31. return maxLinkNode(L->next, max);
  32. }
  33. }

 

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号