236. Lowest Common Ancestor of a Binary Tree
Last updated
Last updated
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.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./**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if(root==NULL||root==p||root==q)
return root;
TreeNode*le=lowestCommonAncestor(root->left,p,q);
TreeNode*ri=lowestCommonAncestor(root->right,p,q);
if(le==NULL)
return ri;
else{
if(ri==NULL)
return le;
else
return root;
}
}
};