2014-03-14 126 views
0
if(newNode->getData()->name<currNode->getData()->name) 
{ 
    if(currNode->getLeftChild()==NULL) 
    { 
     return currNode; 
    } 
     compare(newNode,currNode->getLeftChild()); 
} 
else if(newNode->getData()->name>=currNode->getData()->name) 
{ 
    if(currNode->getRightChild()==NULL) 
    { 
     return currNode; 
    } 
     compare(newNode,currNode->getRightChild()); 
} 
else 
{ 
    currNode==NULL; 
    return currNode; 
} 

最後一個else不包含任何其他可以採取的路徑嗎? 爲什麼我仍然得到一個錯誤,說不是所有的控制路徑都返回一個值? 我錯過了什麼?並提供更好的解決方案的任何提示會很好! 謝謝你的時間。並非所有的控制路徑都返回一個值

回答

0

使用下面的代碼

if(newNode->getData()->name<currNode->getData()->name) 
{ 
    if(currNode->getLeftChild()==NULL) 
    { 
    return currNode; 
    } 
    compare(newNode,currNode->getLeftChild()); 
    return currNode; 
} 
else if(newNode->getData()->name>=currNode->getData()->name) 
{ 
    if(currNode->getRightChild()==NULL) 
{ 
    return currNode; 
} 
    compare(newNode,currNode->getRightChild()); 
    return currNode; 
} 
else 
{ 
    currNode==NULL; 
    return currNode; 
} 


You are not returning any value in first and second else part 
if u dont want to return anything just use return ""; 
+0

謝謝,我現在understnad,我沒有在外面if語句只是一個內部的返回值。笨蛋!傻我 – user3367185

相關問題