2016-11-09 29 views
-1
int last(Node *head) // complete this, must be recursive 
{ 
    Node *ptr = head; 
    if (ptr != NULL) { 
     if (ptr->next == NULL) 
      return ptr->num; 
     else 
      last(ptr->next); 
    } 
} 

我想返回最後一個值,並且我有一種感覺問題與我嘗試返回值的方式有關,但我不確定我應該如何去做。以遞歸方式返回鏈接列表中的最後一個值的值

+3

'else last(ptr-> next);' - >'else return last(ptr-> next);'。 –

+2

也許讀取警告可以幫助在這些情況下 –

+0

改變後返回(ptr-> next);我得到的錯誤:警告:控制達到非void函數結束[-Wreturn-type] } – garrett1027

回答

2
int last(Node *current) 
{ 
    // degenerate case 
    if (current == NULL) return 0; //or pick another number if you want 

    // last element found 
    if (current->next == NULL) return current->num; 

    // recursive 
    return last(current->next); 
}