[leetcode: Python]235. Lowest Common Ancestor of a BST
来源:互联网 发布:vmware mac 无法上网 编辑:程序博客网 时间:2024/06/14 14:43
题目:
Given a binary search tree (BST), find the lowest common ancestor (LCA) of two given nodes in the BST.
According to the definition of LCA on Wikipedia: “The lowest common ancestor is defined between two nodes v and w as the lowest node in T that has both v and w as descendants (where we allow a node to be a descendant of itself).”
_______6______ / \ ___2__ ___8__ / \ / \ 0 _4 7 9 / \ 3 5
For example, the lowest common ancestor (LCA) of nodes 2
and 8
is 6
. Another example is LCA of nodes 2
and 4
is 2
, since a node can be a descendant of itself according to the LCA definition.
方法一:性能149ms
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def lowestCommonAncestor(self, root, p, q): """ :type root: TreeNode :type p: TreeNode :type q: TreeNode :rtype: TreeNode """ if root == None: return None if p and q: a = min(p.val, q.val) b = max(p.val, q.val) if a == root.val or b == root.val: return root if a < root.val and b > root.val: return root elif b < root.val: return self.lowestCommonAncestor(root.left, p, q) elif a > root.val: return self.lowestCommonAncestor(root.right, p, q) elif a == b: return p
方法二:性能119ms
# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# self.val = x# self.left = None# self.right = Noneclass Solution(object): def lowestCommonAncestor(self, root, p, q): """ :type root: TreeNode :type p: TreeNode :type q: TreeNode :rtype: TreeNode """ while root: if root.val > p.val and root.val > q.val: root = root.left elif root.val < p.val and root.val < q.val: root = root.right else: return root
0 0
- [leetcode: Python]235. Lowest Common Ancestor of a BST
- leetcode 235. Lowest Common Ancestor of a Binary Search Tree 最近公共祖先 + BST
- leetcode 236Lowest Common Ancestor of a Binary Tree [python]
- 72【leetcode】经典算法- Lowest Common Ancestor of a Binary Search Tree(lct of bst)
- LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
- [leetcode] 235.Lowest Common Ancestor of a Binary Search Tree
- [LeetCode]235.Lowest Common Ancestor of a Binary Search Tree
- 【LeetCode】235. Lowest Common Ancestor of a Binary Search Tree
- 235. Lowest Common Ancestor of a Binary Search Tree LeetCode
- LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
- [LeetCode]235. Lowest Common Ancestor of a Binary Search Tree
- [LeetCode]235. Lowest Common Ancestor of a Binary Search Tree
- LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
- [leetcode] 235. Lowest Common Ancestor of a Binary Search Tree
- 【LeetCode】235. Lowest Common Ancestor of a Binary Search Tree
- leetcode:235. Lowest Common Ancestor of a Binary Search Tree
- LeetCode *** 235. Lowest Common Ancestor of a Binary Search Tree
- LeetCode-235.Lowest Common Ancestor of a Binary Search Tree
- Redis过期机制介绍
- Hibernate2之configuration
- JAVA-DAO实现批量删除
- Redis 3.0新特性
- HDU 1048 JAVA
- [leetcode: Python]235. Lowest Common Ancestor of a BST
- Android Fragment完全解析
- 显卡内存一直被占用解决方式
- Maven对重复依赖的解决方案
- HDU 1040 JAVA
- Maven profile介绍
- ATS 6.2.1打release版本rpm包时插件中出现undefined symbol的问题追踪
- 【数据库】1库、引擎、约束、表、字段、数据
- UML建模详解