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