mirror of
https://github.com/CyC2018/Interview-Notebook.git
synced 2026-10-31 02:53:42 +00:00
Update 68. 树中两个节点的最低公共祖先.md
补充最低公共祖先递归解法中关于返回值含义与递归查找逻辑的说明。
This commit is contained in:
@@ -35,6 +35,8 @@ public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
|
||||
|
||||
在左右子树中查找是否存在 p 或者 q,如果 p 和 q 分别在两个子树中,那么就说明根节点就是最低公共祖先。
|
||||
|
||||
函数的返回值表示在这棵子树中找到的 p、q 或它们的公共祖先,没找到时为 null:左右子树的递归结果 left、right 都不为 null 时,p、q 分在两边,返回 root;只有一个不为 null 时,返回这个结果。遇到 p 或 q 就直接返回,是因为如果另一个节点在它下面,它本身就是最低公共祖先;如果不在它下面,另一个节点会在其它子树中被找到,由上层节点返回 root。这依赖题目保证 p、q 都在树中。
|
||||
|
||||
<div align="center"> <img src="pics/offer-tree-lca.png" width="460px"/> </div><br>
|
||||
|
||||
```java
|
||||
|
||||
Reference in New Issue
Block a user