题解 | #二叉搜索树的最近公共祖先#

二叉搜索树的最近公共祖先

https://www.nowcoder.com/practice/d9820119321945f588ed6a26f0a6991f

/**

 * struct TreeNode {

 *  int val;

 *  struct TreeNode *left;

 *  struct TreeNode *right;

 *  TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}

 * };

 */

class Solution {

public:

    /**

     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可

     *

     * 

     * @param root TreeNode类 

     * @param p int整型 

     * @param q int整型 

     * @return int整型

     */

     vector<int>getPath(TreeNode *root,int target){

         vector<int> path;

         TreeNode *node=root;

         while(node->val!=target){

             path.push_back(node->val);

             if(target<node->val){

                node= node->left;

             }

             else {

                 node=node->right;

             }

         }

         path.push_back(node->val);

         return path;

     }

    int lowestCommonAncestor(TreeNode* rootint pint q) {

        // write code here

        vector<int> a=getPath(root, p);

        vector<int> b=getPath(root, q);

        int res;

        for(int i=0;i<a.size()&&i<b.size();i++){

            if(a[i]==b[i]) res=a[i];

            else{break;}

        }

        return res;

    }

};

全部评论

相关推荐

新记话事人:你就和她说去抖音了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务