由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - Lowest Common Ancestor of multiple nodes in a binary tree
相关主题
Lowest common ancestor of two nodes of Binary Treerecovery BST 不考虑相同值的情况么?
求教Leetcode题目:Lowest Common AncestorTwitter电面未通过
一个老题binary tree找 lowest common ancestor 的code (请教MS面试题
Lowest Common Ancestor in a binary tree (no parent pointer)这个Binary Tree的题来看看
least common ancestor的疑惑请教一个BST找Median的题目
LCA复杂度是多少amazon on-site interview
LCA复杂度微软面试的一道题
Lowest Common Ancestor一道面试题
相关话题的讨论汇总
话题: node话题: root话题: nodes话题: lca2话题: lca
进入JobHunting版参与讨论
1 (共1页)
j********g
发帖数: 244
1
该怎么做?
好像在哪里看到这么个题,平时都是2nodes.
h****n
发帖数: 1093
2
有两个的了多个还不好做?先找两个的lca之后和第三个继续找lca 以此类推 当然效率
上有待提高

该怎么做?好像在哪里看到这么个题,平时都是2nodes.
★ Sent from iPhone App: iReader Mitbbs Lite 7.56

【在 j********g 的大作中提到】
: 该怎么做?
: 好像在哪里看到这么个题,平时都是2nodes.

j********g
发帖数: 244
3

是啊 就是想知道有没有更高效的。。。。

【在 h****n 的大作中提到】
: 有两个的了多个还不好做?先找两个的lca之后和第三个继续找lca 以此类推 当然效率
: 上有待提高
:
: 该怎么做?好像在哪里看到这么个题,平时都是2nodes.
: ★ Sent from iPhone App: iReader Mitbbs Lite 7.56

d****n
发帖数: 1637
4
suppose binary tree root node is "root"
and all nodes pointers are in the array of
nodes[N];
// copied from leetcode.com
Node *lca2(Node *root, Node *p, Node *q) {
if (!root) return NULL;
if (root == p || root == q) return root;
Node *L = lca2(root->left, p, q);
Node *R = lca2(root->right, p, q);
if (L && R) return root;
return L ? L : R;
}
Node *lca_aux(root, left, right )
{
if (left==right)
return lca2(left,right);
return lca2(root,lca2(root,left,right), lca_aux(left+1,right-1));
}
Node *lca(Node * root, nodes[], N){
return lca_aux(root, nodes[0], nodes[N-1])
}
C***U
发帖数: 2406
5
两个一组 找到lca 得到一串
找到后 找这些nodes的lca
依次继续
最后只剩一个node为止

【在 d****n 的大作中提到】
: suppose binary tree root node is "root"
: and all nodes pointers are in the array of
: nodes[N];
: // copied from leetcode.com
: Node *lca2(Node *root, Node *p, Node *q) {
: if (!root) return NULL;
: if (root == p || root == q) return root;
: Node *L = lca2(root->left, p, q);
: Node *R = lca2(root->right, p, q);
: if (L && R) return root;

h****n
发帖数: 1093
6
刚想说 其实就是 divide and conquer

两个一组
★ Sent from iPhone App: iReader Mitbbs Lite 7.56

【在 C***U 的大作中提到】
: 两个一组 找到lca 得到一串
: 找到后 找这些nodes的lca
: 依次继续
: 最后只剩一个node为止

d*********i
发帖数: 104
7
那假设找K个node的LCA,整个树node数为N,
求LCA的complexity是O(N),总的complexity是不是 N(K-1)?

【在 C***U 的大作中提到】
: 两个一组 找到lca 得到一串
: 找到后 找这些nodes的lca
: 依次继续
: 最后只剩一个node为止

h****n
发帖数: 2094
8
俩俩的算?

【在 j********g 的大作中提到】
: 该怎么做?
: 好像在哪里看到这么个题,平时都是2nodes.

t*********n
发帖数: 89
9
能不能递归返回每一个子树的所包含的给定节点,当一个节点其左右子树所含给定节点
之和为给定节点的总数的时候,那么这个节点就是公共子节点...
1 (共1页)
进入JobHunting版参与讨论
相关主题
一道面试题least common ancestor的疑惑
讨论 Lowest common ancestor of BSTLCA复杂度是多少
二叉树如何判断一个节点是不是在另外两个节点的path上。。。。好像是个老题了。。求解?LCA复杂度
G家intern电面新鲜面经Lowest Common Ancestor
Lowest common ancestor of two nodes of Binary Treerecovery BST 不考虑相同值的情况么?
求教Leetcode题目:Lowest Common AncestorTwitter电面未通过
一个老题binary tree找 lowest common ancestor 的code (请教MS面试题
Lowest Common Ancestor in a binary tree (no parent pointer)这个Binary Tree的题来看看
相关话题的讨论汇总
话题: node话题: root话题: nodes话题: lca2话题: lca