我正在實現一個遍歷一個trie的方法(更具體地說,我試圖計算葉節點的數量,進入這些葉節點的邊都有一個終結符符號'#')。當使用遞歸時Java編譯器錯誤'丟失返回語句'
我使用Java和使用這種方法時,我得到一個錯誤:
public int traverse(Node n){
for(int i=0; i<n.getNumEdges(); i++){
if(n.getEdgeChar(i) == '#'){
return 1;
}
else{
return traverse((n.getEdge(i)).getNode());
}
}
}
我不明白爲什麼我得到這個錯誤,但我怎麼圍繞它得到什麼?最初,我認爲最好通過noLeaves
作爲參數,但在做了一些研究之後,我發現上面的代碼被認爲是更好的做法。我只是不知道如何解決這個編譯器錯誤。任何幫助,將不勝感激!
在循環之外添加一個默認返回語句 –
如果從第一步的函數返回,循環應該如何進入迭代的第二步? –
@PavneetSingh這不會使它更好...編譯,但仍然無法正常工作。 –