avatar
c*s
1
刚面完
lowest common ancestor in a binary tree.
Node class 可以有parent pointer 和 level 信息。需要提供一个O(n)(runtime)
,O(1)(space)的解法
想了想可以让level高的node先沿parent pointer traverse到与level低的node相同的
level. 然后两个node同时一个一个level沿parent pointer traverse。一旦两个node
变成相同的node,return 那个node as result.
avatar
c*t
2
Thank you for sharing. You have a very good solution. Good luck!

node

【在 c********s 的大作中提到】
: 刚面完
: lowest common ancestor in a binary tree.
: Node class 可以有parent pointer 和 level 信息。需要提供一个O(n)(runtime)
: ,O(1)(space)的解法
: 想了想可以让level高的node先沿parent pointer traverse到与level低的node相同的
: level. 然后两个node同时一个一个level沿parent pointer traverse。一旦两个node
: 变成相同的node,return 那个node as result.

avatar
h*n
3
额,基本就是你说的那个方法就行了。
avatar
t*n
4
挺简单的,祝LZ好运
avatar
p*2
5
这题比较直观。
avatar
l*o
6
嗯. 解的好!
avatar
m*k
7
你的解法是log(n)
如果是O(n),不需要parent ptr和level,直接遍历一遍tree就可以了

node

【在 c********s 的大作中提到】
: 刚面完
: lowest common ancestor in a binary tree.
: Node class 可以有parent pointer 和 level 信息。需要提供一个O(n)(runtime)
: ,O(1)(space)的解法
: 想了想可以让level高的node先沿parent pointer traverse到与level低的node相同的
: level. 然后两个node同时一个一个level沿parent pointer traverse。一旦两个node
: 变成相同的node,return 那个node as result.

avatar
c*s
8
一开始也想这样做,用colored DFS。后来interviewer提示说可以有parent ptr和
level信息。
http://www.cs.berkeley.edu/~kamil/teaching/sp03/041403.pdf
不知有没有更好的方法。

【在 m***k 的大作中提到】
: 你的解法是log(n)
: 如果是O(n),不需要parent ptr和level,直接遍历一遍tree就可以了
:
: node

avatar
f*e
9
怎么知道哪个node level高,哪个node level低?还要traverse才能知道?

node

【在 c********s 的大作中提到】
: 刚面完
: lowest common ancestor in a binary tree.
: Node class 可以有parent pointer 和 level 信息。需要提供一个O(n)(runtime)
: ,O(1)(space)的解法
: 想了想可以让level高的node先沿parent pointer traverse到与level低的node相同的
: level. 然后两个node同时一个一个level沿parent pointer traverse。一旦两个node
: 变成相同的node,return 那个node as result.

avatar
l*a
10
1大还是2大?

【在 f*****e 的大作中提到】
: 怎么知道哪个node level高,哪个node level低?还要traverse才能知道?
:
: node

avatar
l*a
11
哪国人给你面的。。

【在 c********s 的大作中提到】
: 一开始也想这样做,用colored DFS。后来interviewer提示说可以有parent ptr和
: level信息。
: http://www.cs.berkeley.edu/~kamil/teaching/sp03/041403.pdf
: 不知有没有更好的方法。

avatar
c*s
12
not very sure.

【在 l*****a 的大作中提到】
: 哪国人给你面的。。
avatar
l*i
13
this one is similar to the problem:
Given two head pointers, check whether they point to the same singly linked
list, if yes, find the first node the two lists have in common.
avatar
t*2
14
楼主做了那code challenge才又的phone吗?

node

【在 c********s 的大作中提到】
: 刚面完
: lowest common ancestor in a binary tree.
: Node class 可以有parent pointer 和 level 信息。需要提供一个O(n)(runtime)
: ,O(1)(space)的解法
: 想了想可以让level高的node先沿parent pointer traverse到与level低的node相同的
: level. 然后两个node同时一个一个level沿parent pointer traverse。一旦两个node
: 变成相同的node,return 那个node as result.

avatar
c*s
15
Get it. I find that the problem is listed here.
http://www.leetcode.com/2011/07/lowest-common-ancestor-of-a-bin
Thanks!

linked

【在 l***i 的大作中提到】
: this one is similar to the problem:
: Given two head pointers, check whether they point to the same singly linked
: list, if yes, find the first node the two lists have in common.

avatar
c*t
16
不懂,你是说遍历,并用backtracking的方法存下两个node所在的path (list),
然后在两个list里找最后的共同node吗?
空间复杂度是多少?

【在 c********s 的大作中提到】
: 一开始也想这样做,用colored DFS。后来interviewer提示说可以有parent ptr和
: level信息。
: http://www.cs.berkeley.edu/~kamil/teaching/sp03/041403.pdf
: 不知有没有更好的方法。

avatar
p*g
18
同疑惑
不过这样空间肯定是 罗格恩
比如一串010101, 表示从入特开始, 往左往右

【在 c********t 的大作中提到】
: 不懂,你是说遍历,并用backtracking的方法存下两个node所在的path (list),
: 然后在两个list里找最后的共同node吗?
: 空间复杂度是多少?

avatar
b*m
19
有parent和level信息……这题就没难度了。
avatar
c*s
20
一开始interview时对runtime和space complexity并没有要求。就是要讲思路。

【在 c********t 的大作中提到】
: 不懂,你是说遍历,并用backtracking的方法存下两个node所在的path (list),
: 然后在两个list里找最后的共同node吗?
: 空间复杂度是多少?

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。