二叉樹:找出2個節點的最近公共祖先(優化算法)

這道題的傳統思路是想方法把根到兩個點的路徑分別保存在兩個容器中,而後從後往前遍歷容器找出相等的節點便爲最近公共祖先。很容易計算出這是一個時間複雜度爲o(n),空間複雜度爲o(lgn)的算法。php 若是咱們這時要求使用空間複雜度爲o(1)的算法那?web 咱們能夠這樣作: 假設2個節點爲p1, p2。 咱們遍歷這顆樹,若是發現這個節點爲p1/p2或者這個 節點的子樹中有p1/p2時,返回p1/p2
相關文章
相關標籤/搜索