查找最低共同祖先代码说明

时间:2012-12-26 20:55:29

标签: algorithm

我正在查看以下编程访谈暴露的代码,我似乎无法理解它是如何工作的。这个方法总是不会返回null吗?

// Overload it to handle nodes as well
Node findLowestCommonAncestor( Node root, Node child1,
                               Node child2 ){
    if( root == null || child1 == null || child2 == null ){
        return null;
    }

    return findLowestCommonAncestor( root, child1.getValue(),
                                     child2.getValue() );
}

1 个答案:

答案 0 :(得分:2)

从代码片段中,我们并不知道getValue返回的内容。因此,如果有其他重载版本的findLowestCommonAncestor,并且getValue返回Node之外的其他内容,那么在你的代码片段中对findLowestCommonAncestor的调用不会以递归方式调用自身。