1
我想從左到右打印出樹中的所有內容(不是二叉樹)。我有以下的樹類及其方法:在java中遞歸地打印樹中的所有節點
public class Tree
{
Node root;
public Tree(String rootData)
{
root = new Node();
root.data = rootData;
root.children = new ArrayList<Node>();
}
public static class Node
{
private String data;
private Node parent;
private List<Node> children;
public Node(){}
public Node(String newNodeData, Node newNodeParent)
{
data = newNodeData;
parent = newNodeParent;
}
}
public void print(Node curNode)
{
int index = 0;
while(curNode.children.get(index) != null)
{
print(curNode.children.get(index));
System.out.println(curNode.children.get(index).data);
}
}
它拋出在print(curNode.childred.get(index));
線空指針異常,我不明白爲什麼。當第一次調用print
時,樹的根節點被傳遞給它。我是簡單的打印方法,還是有一個更好的方法來做到這一點?我在網上找到的所有東西都是二叉搜索樹,我無法弄清楚如何使它適用於此。
我也很樂意做這個迭代,但我不知道從哪裏開始,而且我知道這會更復雜,然後遞歸地進行。或者如果我說錯了,請告訴我。
錯誤輸出的完整跟蹤將非常有用:) – CodeGuy 2013-04-08 00:10:39
您正在獲取NPE,因爲某些內容爲空。你應該使用調試器來找出那是哪個東西。 – 2013-04-08 00:11:12