递归:如何从递归函数返回value-1

时间:2017-03-10 07:36:14

标签: java recursion binary-search-tree

我写了一个方法来返回二进制搜索树的高度。

现在我试图从递归方法返回ORDER BY ABS(column_name)。我这样做是为了增加额外的height - 1条件。

有没有更好的方法从递归函数返回if

value - 1

1 个答案:

答案 0 :(得分:3)

在您的基本情况下,分别返回-1和0:

static int height(Node root) {
    if(root == null)       
        return -1;
    if(root.left == null && root.right==null)      
        return 0;            
    else
        return 1+ Math.max(height(root.left),
                   height(root.right));   
}

更新以符合评论中提到的要求:"如果我想为空节点返回0,对于单节点返回1,如果为所有其他节点返回高度1,该怎么办。"

static int funny_height(Node root) {
    int h = height(node);
    return h <= 0 ? h + 1 : h;
}