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

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

http://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整型 / bool flag=false; int ans=0; void find(TreeNode r,int p,int q){ if(!r||flag) return; if(r->val==q||r->val==p) { flag=true; ans=r->val; return; } if(r->val>q&&r->val>q){ find(r->left,p,q); } if(r->val<q&&r->val<q){ find(r->right,p,q); } if(r->val<q&&r->val>p||r->val>q&&r->val<q){ flag=true; ans=r->val; return; }

    } int lowestCommonAncestor(TreeNode* root, int p, int q) { // write code here find(root,p,q); return ans; } };
全部评论
运行速度超过100%的代码
点赞 回复 分享
发布于 2021-11-16 09:44

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务