#236

Lowest Common Ancestor of a Binary Tree

pupil · 575 · lc medium +29 · failed · 68.8% accepted · 18,559 likes · top 76%

play →

Description

Given a binary tree (not necessarily a BST), find the lowest common ancestor (LCA) of two given nodes p and q.

The LCA is defined as the deepest node that has both p and q as descendants, where a node may be a descendant of itself.

Example 1:

Input: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1
Output: 3
Explanation: The LCA of nodes 5 and 1 is 3.

Example 2:

Input: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4
Output: 5
Explanation: The LCA of nodes 5 and 4 is 5, since a node can be a descendant of itself according to the LCA definition.

Example 3:

Input: root = [1,2], p = 1, q = 2
Output: 1

Code

1
2
3
4
5
6
7
8
9
10