【发布时间】:2013-02-18 12:54:42
【问题描述】:
我正在尝试使用 java 打印二叉树中的所有根到叶路径。
public void printAllRootToLeafPaths(Node node,ArrayList path)
{
if(node==null)
{
return;
}
path.add(node.data);
if(node.left==null && node.right==null)
{
System.out.println(path);
return;
}
else
{
printAllRootToLeafPaths(node.left,path);
printAllRootToLeafPaths(node.right,path);
}
}
在主方法中:
bst.printAllRootToLeafPaths(root, new ArrayList());
但它给出了错误的输出。
给定树:
5
/ \
/ \
1 8
\ /\
\ / \
3 6 9
预期输出:
[5, 1, 3]
[5, 8, 6]
[5, 8, 9]
但产生的输出:
[5, 1, 3]
[5, 1, 3, 8, 6]
[5, 1, 3, 8, 6, 9]
有人能解决吗...
【问题讨论】:
-
我们需要更多信息来帮助您。 "但它给出了错误的输出。" --> 你的输入是什么?您期望什么输出(以及为什么)以及实际输出是什么?
-
感谢您的建议。但是其他人理解我的问题并给出了所需的答案......
-
@jlordo:输入显然是一棵给定根节点的树。预期的输出是:从根到叶的所有路径。(问题中明确提到)。错误的输出意味着:预期的输出没有到来......
-
这里是Stack Overflow question checklist,关于如何写一个好问题。一个要点:如果您的程序产生的结果与您的预期不同,您是否说明了您的预期、预期的原因以及实际结果?
-
@loknath 人们猜对了这一事实并不意味着您的问题已经尽可能/应该清楚。请务必查看 jlordo 发布的清单。
标签: java tree binary-tree