235. Lowest Common Ancestor of a Binary Search Tree
題目:
https://leetcode.com/problems/lowest-common-ancestor-of-a-binary-search-tree/
難度 : Easy
- 兩個(gè)node碗脊,一個(gè)大于root锡搜,一個(gè)小于root痹栖,那么必定root兩邊,共同的ancestor是root,同時(shí)再考慮同為空的狀況
- 兩個(gè)node榄攀,都比node小掘托,到左邊去尋找卦睹,那么先找到那個(gè)必定是common ancestor
- 兩個(gè)node畦戒,都比node大,類(lèi)似....
AC解法
class Solution(object):
def lowestCommonAncestor(self, root, p, q):
"""
:type root: TreeNode
:type p: TreeNode
:type q: TreeNode
:rtype: TreeNode
"""
if root == None or root == p or root == q:
return root
elif p.val < root.val < q.val or q.val < root.val < p.val :
return root
elif p.val < root.val and q.val < root.val:
return self.lowestCommonAncestor(root.left,p,q)
else:
return self.lowestCommonAncestor(root.right,p,q)