Сейчас на форуме: jinoweb, bartolomeo (+5 невидимых)

 eXeL@B —› Программирование —› LCA(Lowest Common Ancestor)
Посл.ответ Сообщение

Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 28 сентября 2016 00:29 · Поправил: TheNozza
· Личное сообщение · #1

Hello everyone!
Can you say please, do we have a solution to find LCA of two nodes in binary tree visiting every tree node only once?
Nodes only have left, right references without parent.
Requrementes: O(n) time complexity, constant memory space, every tree node is visiting only once.
C, C++, Java, or pseudocode is enough to implement this algo if it exists.
Can anyone show solution of this problem?



Ранг: 431.7 (мудрец), 390thx
Активность: 0.730.32
Статус: Участник

Создано: 28 сентября 2016 04:08 · Поправил: dosprog
· Личное сообщение · #2

No. It's too difficult

However go to --> Link <--





Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 28 сентября 2016 21:39
· Личное сообщение · #3

TheNozza
are you passing the google & | MS screening?



Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 29 сентября 2016 19:12 · Поправил: TheNozza
· Личное сообщение · #4

<<are you passing the google & | MS screening?
Not yet. I have found compact solution of this problem. And I want to check if this solution already exists.

In the book "Cracking the Coding Interview, 4 Edition" for task 4.6 there are 3 solutions. You can see there, that algorithm traverses each node of tree more than once.

I can't find in internet how to solve problem visiting every tree node only once.
Here http://blog.gainlo.co/index.php/2016/07/06/lowest-common-ancestor/ you can see mention, that it is possible: "Since we traverse all nodes at most once without external space, both time and space complexity is O(N).", but without code.



Ранг: 590.6 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 29 сентября 2016 19:28
· Личное сообщение · #5

note the LCA is a node which has values you looking for in different branches. Use recursion call to find such node.

-----
старый пень




Ранг: 23.4 (новичок)
Активность: 0.010
Статус: Участник

Создано: 29 сентября 2016 20:46 · Поправил: TheNozza
· Личное сообщение · #6

can you show a code? for example post url to code in internet, which solves this problem. My solution has ~ ten strings of code, and of course it uses recursion.



Ранг: 590.6 (!), 408thx
Активность: 0.360.18
Статус: Модератор

Создано: 29 сентября 2016 22:05
· Личное сообщение · #7

If you have solution what else do you want?

-----
старый пень



 eXeL@B —› Программирование —› LCA(Lowest Common Ancestor)
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати