我讨厌递归,我不能轻松地跟踪代码,但是对于树我别无选择。
这是我到目前为止所尝试的。
private int evaluate(Node n)
{
if (n != null)
{
if (n.isLeaf()) // n is a node with a number
return Integer.parseInt(n.element);
else
{
int left = evaluate(n.left);
int right = evaluate(n.right);
return calculate(left, n.element, right);
} //end else
} //end if
} //end evaluate