-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathLeetcode236.java
More file actions
28 lines (22 loc) · 972 Bytes
/
Leetcode236.java
File metadata and controls
28 lines (22 loc) · 972 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// ----------------------------------------------------------------------------------------------
// LeetCode 236 : Lowest Common Ancestor of a Binary Tree
// Link : https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-tree/
// ----------------------------------------------------------------------------------------------
class Solution {
public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
if (root.val == p.val || root.val == q.val)
return root;
if (root.left == null && root.right == null)
return null;
TreeNode left = null;
TreeNode right = null;
if (root.left != null)
left = lowestCommonAncestor(root.left, p, q);
if (root.right != null)
right = lowestCommonAncestor(root.right, p, q);
if (left != null && right != null) {
return root;
}
return (left == null) ? right : left;
}
}