lca(最近公共祖先)
递归的这个函数究竟什么意思
没有一个解说说了这个递归函数什么意思
默认都以为递归函数的意思是返回root节点下,p和q的lca, 而实际上这个递归函数表示
- p q都能找到,返回lca
- 能找到一个,返回找到的那个
- 都找不到,返回null
其他
每个解释上来就是 如果root等于p或者q,那么最近的公共祖先就是自己
凭啥啊???
p,q=5,8
比如这个图,root到5的时候,root==5,凭啥公共祖先就是5啊
我百思不得其解, 终于后来想通了
你以为递归已经到lowestCommonAncestor(5,5,8),而实际上,这是根本不可能出现的一个情况,因为lowestCommonAncestor的含义就是p和q必须在root这个树上。
所以换一种思路想,如果root等于p或者q,那么另一个必然在这个树下的某个位置。