由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 请问LOWEST COMMON ANCESTOR OF A BINARY TREE, treenode 只有parent,没有left,right
相关主题
help: leetcode "Recover Binary Search Tree" -- 附代码面试的时候 binary tree的delete也要15分钟之内写完么?
Lowest Common Ancestor (LCA) The tree is not a binary treeGoogle onsite前有两轮电面?
Lowest common ancestor of two nodes of Binary Tree请问关于lowest common ancestor的问题。
LCA复杂度是多少Lowest Common Ancestor of multiple nodes in a binary tree
LCA复杂度豁出去了,决定怒刷100题
问一个题目请教Lowest Common Ancestor of a Binary Tree Part I iterative solution?
Recover Binary Search Tree:以前的解法通不过了leetcode: Lowest Common Ancestor of a Binary Tree Part 的解法
Least Common Ancester算法最优解Longest common string问题
相关话题的讨论汇总
话题: countp话题: node话题: countq话题: cur话题: node2
进入JobHunting版参与讨论
1 (共1页)
s*******5
发帖数: 126
1
和LOWEST COMMON ANCESTOR OF A BINARY TREE要求一样,但给的node是这样的
class Node{
value
parent
}
然后也只给了node1, node2,没有root,这个要怎么做啊,谢谢
j******3
发帖数: 16
2
unordered_set visited;
while(node1 != NULL)
{
visited.insert(node1);
node1 = node1->parent;
}
while(node2 != NULL)
{
if(visited.find(node2) != visited.end() ) break;
node2 = node2->parent;
}
return node2;
时空都是log(n),空手写的,错了轻喷
f********y
发帖数: 156
3
空间不用 O(logn)
left 向上走,直到空, 这样得到left 的深度 d1; 同样得到 right 的深度 d2
假设 d1 > d2, left 先走 (d1- d2) 步, 然后 left & right 同步向上,遇到的node
就是 LCS
z*****n
发帖数: 206
4
只有parent, 怎么向左怎么向右?

node

【在 f********y 的大作中提到】
: 空间不用 O(logn)
: left 向上走,直到空, 这样得到left 的深度 d1; 同样得到 right 的深度 d2
: 假设 d1 > d2, left 先走 (d1- d2) 步, 然后 left & right 同步向上,遇到的node
: 就是 LCS

j*****8
发帖数: 3635
5
不需要考虑左右,往上走就行

【在 z*****n 的大作中提到】
: 只有parent, 怎么向左怎么向右?
:
: node

w*****e
发帖数: 931
6
不需要管,等同于找两个list的first coincidence

【在 z*****n 的大作中提到】
: 只有parent, 怎么向左怎么向右?
:
: node

s*******5
发帖数: 126
7
那空间是多少?O(1)吗

node

【在 f********y 的大作中提到】
: 空间不用 O(logn)
: left 向上走,直到空, 这样得到left 的深度 d1; 同样得到 right 的深度 d2
: 假设 d1 > d2, left 先走 (d1- d2) 步, 然后 left & right 同步向上,遇到的node
: 就是 LCS

f********y
发帖数: 156
8
对,因为和树的大小无关

那空间是多少?O(1)吗

【在 s*******5 的大作中提到】
: 那空间是多少?O(1)吗
:
: node

d*******s
发帖数: 65
9
人只查步数不存下从下往上走的路径

【在 f********y 的大作中提到】
: 对,因为和树的大小无关
:
: 那空间是多少?O(1)吗

l******s
发帖数: 3045
10
It's the way of finding the earliest joint of 2 linked list.
private Node LCA(Node p, Node q){
int countP = 0, countQ = 0;
Node cur = p;
while(cur != null) { cur = cur.parent; countP++; }
cur = q;
while(cur != null) { cur = cur.parent; countQ++; }
if(countP < countQ) {
cur = p; p = q; q = cur;
countP = countP ^ countQ ^ (countQ = countP);
}
while(countP > countQ) { p = p.parent; countP--; }
while(p != q) { p = p.parent; q = q.parent; }
return p;
}
1 (共1页)
进入JobHunting版参与讨论
相关主题
Longest common string问题LCA复杂度
Lowest Common Ancestor in a binary tree (no parent pointer)问一个题目
问最小窗口覆盖的面试题Recover Binary Search Tree:以前的解法通不过了
A onsite被拒,面经,求分析失败原因Least Common Ancester算法最优解
help: leetcode "Recover Binary Search Tree" -- 附代码面试的时候 binary tree的delete也要15分钟之内写完么?
Lowest Common Ancestor (LCA) The tree is not a binary treeGoogle onsite前有两轮电面?
Lowest common ancestor of two nodes of Binary Tree请问关于lowest common ancestor的问题。
LCA复杂度是多少Lowest Common Ancestor of multiple nodes in a binary tree
相关话题的讨论汇总
话题: countp话题: node话题: countq话题: cur话题: node2