【发布时间】:2019-03-22 20:16:40
【问题描述】:
BST 中的路径是从根到叶节点的一次遍历。因此,如果我们有一个形式的二叉树,
7
3 9
1 5 8 13
路径是,
7 3 1
7 3 5
7 9 8
7 9 13
这是我的代码,它不能正常工作。
public void printPath(Node root){
Deque<Node> stack = new ArrayDeque<>();
printPath(root, stack);
}
public void printPath(Node root, Deque<Node> stack){
if(root == null){
Iterator itr = stack.descendingIterator();
while(itr.hasNext()){
Node p = (Node) itr.next();
System.out.print(p.data + " ");
}
stack.poll();
System.out.println();
return;
}
stack.offerFirst(root);
printPath(root.left, stack);
printPath(root.right, stack);
}
此代码未正确打印所有路径。任何帮助表示赞赏。
【问题讨论】:
-
你能提供一些关于“路径”的信息吗?您是否正在寻找
in-order遍历的所有排列? -
我相信 OP 意味着从所有叶子到根的路径。
-
路径是指从根到任何叶节点的路径。