Lowest Common Ancestor of a Binary Search Tree
题意
给你一颗二叉搜索树,然后问其中任意两个点的最近公共祖先(LCA)
解法
这道题目因为是有序的二叉树,所以我们可以利用’有序’这个性质来求解任意两个点(p, q)的LCA,刚开始有初始的节点,我们叫做root,分以下三种情况
- 当p,q的值一个小于root,一个大于root的值,那么说明此时root就是p,q两个节点的LCA
- 当p节点的值小于root时(q就不用管了,我们先判断了第一个条件,如果第一个条件不成立,说明此时q的值也是小于root的),那么p, q的LCA应该就是在root的左分支上。
- 当p节点的值大于root时,那么p, q的LCA应该就是在root的右分支上。
代码
|
|