|
|
@ -638,3 +638,19 @@ class Solution { |
|
|
|
} |
|
|
|
} |
|
|
|
``` |
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### [68 - II. 二叉树的最近公共祖先](https://leetcode-cn.com/problems/er-cha-shu-de-zui-jin-gong-gong-zu-xian-lcof/) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```java |
|
|
|
|
|
|
|
class Solution { |
|
|
|
|
|
|
|
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) { |
|
|
|
|
|
|
|
if(root == null || root == p || root == q) return root; |
|
|
|
|
|
|
|
TreeNode left = lowestCommonAncestor(root.left, p, q); |
|
|
|
|
|
|
|
TreeNode right = lowestCommonAncestor(root.right, p, q); |
|
|
|
|
|
|
|
if(left == null && right == null) return null; // 1. |
|
|
|
|
|
|
|
if(left == null) return right; // 3. |
|
|
|
|
|
|
|
if(right == null) return left; // 4. |
|
|
|
|
|
|
|
return root; // 2. if(left != null and right != null) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|