通过递归在链表中查找最大值

时间:2016-05-21 12:13:08

标签: recursion

我想使用递归找到链表中的max元素,但我的代码不起作用。我无法将第一个元素添加到链接列表中进行比较。

这是我的代码:

void findmax(list L,int &m)
{
    if(L!=NULL)
    {   
        if(L->next!=NULL)
            if(L->Data<L->next->Data)
                m=(m>L->next->Data)?m:L->next->Data;
            else
                m=(m>L->Data)?m:L->Data;
        else m=L->Data;
        findmax(L->next,m);
    }
    else 
        return;
} 

1 个答案:

答案 0 :(得分:-1)

算法:

1>  START //AFTER CREATING THE LINK LIST
2>  MAX= START->DATA
3>  TEMP=START //TEMPORARY NODE
4>  START=NODE
5>  THE CONTROL CHECKS WHETHER TEMP.DATA>MAX IF YES IT ASSIGNS TEMP.DATA TO MAX             6>  OTHERWISE GOTO STEP 7 TO ITERATE
7>  TEMP=TEMP.LINK //TRAVERSING THE LIST
8>  WHILE(TEMP.LINK!=NULL)
9>  TEMP=NULL
10> END