gpt4 book ai didi

JAVA:创建二叉树时出现问题

转载 作者:行者123 更新时间:2023-12-01 17:32:28 25 4
gpt4 key购买 nike

好的,这是我的代码。我正在尝试使用二叉树进行练习。为什么我的 size() 方法无法访问二叉树的根节点?

我的 root.left 和 root.right 分配也不起作用。

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.*;
import java.lang.*;
import javax.swing.*;

public class Main {

public static void main(String[] args) {
System.out.println(bTree.size());
}
}

//Building Binary Trees
class bTree {

static class Node { //remember to initilize a root

String value;
Node left, right;
Node root = new Node("ROOT");
Node lefty = new Node("LEFT0");
Node righty = new Node("RIGHT0");
root.left = lefty;
root.right = righty;

Node(String value, Node left, Node right) {
this.value = value;
this.left = left;
this.right = right;
}

Node(String value) //THIS IS A SIBLING CONSTRUCTOR
{
this(value, null, null);
}
}

public static int size() //Public | sibling constructor
{
System.out.println("Debug0");
System.out.println(root.value);
return size(root);
}

//This method will find the size of a node
private static int size(Node r) //using recursion
{
if (r == null) {
return 0;
} else {
return 1 + (size(r.left) + size(r.right));
}
}
}

任何帮助将不胜感激,我明天将对此信息进行最后的讨论!

山姆

最佳答案

正如您在代码中的评论所说:

//remember to initialize a root

您没有这样做(至少在您的示例中)。

唯一的变量root是在bTree的子类中定义的,并且不能直接供size()方法使用。

size() 应为:

public static int size() {
System.out.println("Debug0");
System.out.println(Node.root.value);
return size(Node.root);
}

关于JAVA:创建二叉树时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9658574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com