本文共 1181 字,大约阅读时间需要 3 分钟。
// 顺利一遍过
/** * 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->left == NULL && root->right == NULL){ return NULL; } if ((p->val - root->val) * (q->val - root->val) <= 0 ){ return root; } if ( (p->val > root->val) && (q->val > root->val) ){ if (root->right != NULL) return lowestCommonAncestor(root->right, p, q); else return NULL; }else if ( (p->val < root->val) && (q->val < root->val) ){ if (root->left != NULL) return lowestCommonAncestor(root->left, p, q); else return NULL; } }};
转载地址:http://hcpbb.baihongyu.com/