-2
主類:二叉樹如何遞歸生成二叉樹?
它包含根節點和二叉樹構造
public class BinaryTree{
Node root;
BinaryTree (int depth){
this.root = new Node(depth);
root.generateTree(depth);
}
子類節點。
generateTree()方法在此類中定義但不起作用。
節點代表樹的分支。
generateTree返回一個二叉樹。
class Node{
final int LEAF = 1;
final int BALL = 2;
final int CANDLE = 3;
int depth;
int decoration;
String color;
boolean on;
Node left;
Node right;
Node(int depth){
this.depth = depth;
}
void setLeaf(){
decoration = LEAF;
}
void setBall(String color){
color = color;
}
void setCandle(boolean on){
on = on;
}
BinaryTree generateTree(int depth) {
if (depth == 0) {
return root;
}
else if (depth > 1) {
if (root.right == null){
root.right = new Node(depth-1);
root.left = new Node(depth-1);
}
for (int i=0; i < depth; i++){
Node node = new Node(depth);
node.right = new Node(depth-1);
node.left = new Node(depth-1);
}
}
generateTree(depth - 1);
}
}
}
感謝您的回答。但該方法需要返回一個二叉樹。 –
如果是這樣,我會更新我的帖子來解釋如何去做。 –