【LeetCode】 二叉搜索樹的最近公共祖先

題目描述:

https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/

解題思路:

二叉搜索樹:二叉查找樹(Binary Search Tree),(又:二叉搜索樹、二叉排序樹)它或者是一棵空樹,或者是具有下列性質(zhì)的二叉樹: 若它的左子樹不空,則左子樹上所有結(jié)點的值均小于它的根結(jié)點的值; 若它的右子樹不空,則右子樹上所有結(jié)點的值均大于它的根結(jié)點的值; 它的左、右子樹也分別為二叉排序樹

遞歸;
第一步:終止條件,當(dāng)給定的兩個節(jié)點p,q的值在根結(jié)點兩側(cè)或其中一個就是根結(jié)點,則返回根節(jié)點
第二步:返回值:返回根結(jié)點;
第三步:本級需要做的事:判斷p,q都在root的左還是右側(cè);

代碼:

class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        if((root->val - p->val)*(root->val - q->val) <= 0)
            return root;
        if(root->val < p->val && root->val < q->val)
            return lowestCommonAncestor(root->right, p, q);
        else
            return lowestCommonAncestor(root->left, p, q);
    }
};
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容