2013-04-12 55 views
0

我正在用Java編寫一個使用二叉樹的家族樹程序。 ancestors方法從另一個類中調用,並調用findAncestors以遞歸方式運行以將所有祖先附加到輸出字符串。我在我的樹上添加了父指針,希望能夠更容易找到所有的祖先。將二叉樹節點的所有祖先追加到Java中的字符串

我使用的locate方法在樹中搜索傳遞的String並返回它所在的節點。

我目前遇到的問題是該方法只返回直接父節點而不是節點的所有祖先。

public String ancestors(String x) 
    { 
    String outputString = ""; 
    if (locate(x).parent!=null) 
     outputString = findAncestors(locate(x),outputString); 
    return outputString; 
    } 

    private String findAncestors(Node x,String outputString) 
    { 
    if(x.parent != null) 
     { 
      outputString = outputString + String.valueOf(x.parent.value); 
      findAncestors(x.parent,outputString); 
     } 
    return outputString; 
    } 

回答

0

您不能將字符串作爲更改參數來使用,因爲它是不可變的。 嘗試:

return findAncestors(x.parent,outputString); 

+0

呸,你說得對!我錯過了那張臉,正好凝視着我。謝謝。 – BigGrizzle