======|LeetCode #235. 二叉搜索树的最近公共祖先
题目描述:给定二叉搜索树及两个节点,求这两个节点的最近公共祖先
【======|LeetCode #235. 二叉搜索树的最近公共祖先】解题思路:
- 两个节点分别在左右子树,公共祖先是根节点;
- 两个节点都在左子树;
- 两个节点都在右子树;
class Solution {
public:
TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
if(root==NULL)return NULL;
// 要么在左子树,要么在右子树,要么就是根节点
while(root){
if(p->val>root->val&&q->val>root->val)
root=root->right;
else if(p->valval&&q->valval)
root=root->left;
else return root;
}
}
};
推荐阅读
- 【Leetcode/Python】001-Two|【Leetcode/Python】001-Two Sum
- java中如何实现重建二叉树
- leetcode|leetcode 92. 反转链表 II
- 二叉树路径节点关键值和等于目标值(LeetCode--112&LeetCode--113)
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- LeetCode(03)Longest|LeetCode(03)Longest Substring Without Repeating Characters
- Leetcode|Leetcode No.198打家劫舍
- [leetcode数组系列]1两数之和
- 笔记|C语言数据结构——二叉树的顺序存储和二叉树的遍历
- 数据结构和算法|LeetCode 的正确使用方式