我有一个二叉树,我想从中生成所有可能的子树。 示例:
1
/ \
2 3
/ \
4 5
可能的输出是:
1, 2, 3, 4, 5.
(1,2) (1,3)
(1,3,4) (1,3,5)
这可能吗?我需要一个算法来生成输出?
答案 0 :(得分:0)
让我以伪代码发布答案:
首先让我告诉你我是如何实现三个的:
Node{
Node rightNode;
Node leftNode;
String value;
}
在此之后是算法:
Algoritm{
String[] posibleThrees;
String getPosibleThrees(Node root){
getPosibleThree(root, "");
return posibleThrees;
}
void getPosibleThree(Node node, String nodesBefore){
posibleThrees[] = nodesBefore; //adding nodes before
if (node.rightNode != null){
getPosibleThree(node.rightNode, nodesBefore+" "+node.value);
}
if (node.leftNode != null) {
getPosibleThree(node.leftNode, nodesBefore+" "+node.value);
}
}
}