0
A
回答
2
此問題被稱爲最低公共祖先(LCA)問題。
的第一步就是讓下層節點爬升,直到他們都在同一height
:(谷歌它)
一個查詢可以通過簡單地沿着其parent
鏈接爬起來,直到他們滿足回答。
第二步是讓他們同時攀登,直到他們在同一節點相遇。
那麼那個節點就是這兩個節點的LCA。
如果您需要處理多個查詢,則需要使用更高級的算法。最具時間效率的算法使用O(n)時間進行預處理,並且O(1)時間爲每個查詢,其中n是樹中的總節點。
相關問題
- 1. 的SQLite - >尋找兩個最接近的點到兩個不同點
- 2. 尋找最近的鏈接
- 3. 尋找到指定點的最近點
- 4. 尋找最近點的路徑向前
- 5. 尋找距離最近的向量點
- 6. 尋找最近點的有效方法?
- 7. 圖算法/尋找破壞圖形的最節點的兩個節點
- 8. 尋找包含兩個節點的最短週期
- 9. 在Neo4j中提高尋找最近節點的性能Spatial
- 10. 尋找最接近的塊範圍
- 11. 尋找最接近的匹配
- 12. 尋找最接近的元素值jquery
- 13. 在Pandas DataFrames中尋找最近點
- 14. 尋找最近的小時
- 15. 尋找最近的IP
- 16. 說明在尋找最接近的一對點
- 17. 在球體上尋找最接近的一對點
- 18. 算法來尋找最接近100明星原點
- 19. xpath:選擇最接近根的節點
- 20. 找到每個點的最近點(最近的鄰居)
- 21. 在圖中,如何找到一組節點的最近節點?
- 22. 列表中最接近的兩點?
- 23. 如何在neo4j中將兩個節點作爲父節點鏈接在一起
- 24. 找到另一個點的最近點
- 25. 查找兩個節點之間共享的連接節點
- 26. c#xml尋找標題爲/的節點
- 27. 尋找BeautifullSoup的最接近的鏈接(python)
- 28. Spatialite爲給定的經緯度找到最近的節點
- 29. 樹中最近的節點
- 30. 爲numpy陣列中的每個點找到最接近的k個點
你有什麼輸入和使用的樹形表示?例如,你給了根,每個節點都有指向兒童的指針,你知道要查找的兩個節點值?你是否給了節點,每個節點都有一個指向父節點的指針?可能是一個沒有指針的完整二叉樹,你給了兩個節點索引? – 6502 2012-02-07 08:25:54
我試過了:只要我們的父母是不同的,我們是父母,再次做檢查。 – smallB 2012-02-07 08:28:03
輸入是兩個節點。 – smallB 2012-02-07 08:28:26