【道德经·第三十八章·中】故失道而后德,失德而后仁,失仁而后义,失义而后礼。夫礼者,忠信之薄,而乱之首。前识者,道之华,而愚之始。
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
   | class Solution { public:     TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {         if(!root) return nullptr;                  if(root==p || root==q) {             return root;         }                  TreeNode *l = lowestCommonAncestor(root->left, p, q);         TreeNode *r = lowestCommonAncestor(root->right, p, q);                  if(l && r) {             return root;         }                  if(!l && !r) {             return nullptr;         }                  return l==nullptr ? r : l;     } };
  | 
 
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
   | class Solution { public:     TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {         if(!root) return root;                  TreeNode *cur = root;         while(cur) {             if(cur->val>p->val && cur->val>q->val) {                 cur = cur->left;             } else if(cur->val<p->val && cur->val<q->val) {                 cur = cur->right;             } else {                 break;             }         }                  return cur;     } };
  | 
 
位我上者,灿烂星空;道德律令,在我心中。