我正在使用二进制树进行练习,其中使用了两个函数,它们看起来如下:
class Program
{
public Node root;
static void Main(string[] args)
{
//build and return tree
var b = binaryTree();
//get sum of tree
var x = binaryTreeSum(b);
//Console.WriteLine("Sum of the binary tree is " + x);
}
对于非静态字段,方法或属性,我在var b = binaryTreeSum(b)
对象引用上遇到错误。我正在尝试通过以下功能创建树:
public Program binaryTree()
{
//build tree
Program tree = new Program();
tree.root = new Node(10);
tree.root.left = new Node(5);
tree.root.right = new Node(11);
tree.root.left.left = new Node(2);
tree.root.left.right = new Node(1);
tree.root.right.left = new Node(5);
tree.root.right.right = new Node(123);
return tree;
}
是否可以将我的tree.root
或tree
返回到var b
?我知道我可以使用tree.root
来获取下一个要执行的功能的总和。一开始我可能会犯错,但是我必须使用这两个函数并返回到var
答案 0 :(得分:0)
我认为您只想return tree;
根据方法签名,您想返回一个BinaryTree
对象,但是您当前正在尝试返回一个Node
。
由于我不确定这些对象的来源(您创建了这些对象?),所以我假设一个对象不是从另一个对象派生的。
您的binaryTree()
函数的返回值将自动分配给var a