Lowest Common Ancestor of a Binary Tree LeetCode solution in C++
1class Solution {2public:3TreeNode *lowestCommonAncestor(TreeNode *root, TreeNode *p, TreeNode *q) {4if (!root) {5return NULL;6}7if (root == p or root == q) {8return root;9}10TreeNode *left = lowestCommonAncestor(root->left, p, q);11TreeNode *right = lowestCommonAncestor(root->right, p, q);12if (left and right) return root;13if (left)14return left;15else16return right;17}18};