LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
来源:互联网 发布:小浪底水利枢纽知乎 编辑:程序博客网 时间:2024/05/21 06:24
Lowest Common Ancestor of a Binary Search Tree
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.
解题思路
在二叉查找树中,寻找两个节点的最低公共祖先:
- 如果a、b都比根节点小,则在左子树中递归查找公共节点。
- 如果a、b都比根节点大,则在右子树中查找公共祖先节点。
- 如果a、b一个比根节点大,一个比根节点小,或者有一个等于根节点,则根节点即为最低公共祖先。
代码如下:
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { int min_v = min(p->val, q->val); int max_v = max(p->val, q->val); if (min_v > root->val) { return lowestCommonAncestor(root->right, p, q); } if (max_v < root->val) { return lowestCommonAncestor(root->left, p, q); } return root; }};
0 0
- 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
- 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
- 字符数组,字符指针
- Hexagon SDK架构分析
- java环境变量配置及JDK安装
- yii dwz配置
- if else 语句返回的问题
- LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
- iOS UICollectionViewController基本使用方法和简单的相册实现
- Exception和throwable
- 获取Form.ShowDialog() 出的窗体中textbox的返回值
- MySQL主从复制与读写分离的实现
- tornado-业务流程
- HIHOCODE #1241:Best Route in a Grid
- ufldl.PCA-2D实现
- 修改对话框左上角的标题用SetWindowText(L“对话框的标题")即可