Lintcode 最近公共祖先

2022-06-22 17:33:09 字數 775 閱讀 5548

給定一棵二叉樹,找到兩個節點的最近公共父節點(lca)。

最近公共祖先是兩個節點的公共的祖先節點且具有最大深度。

假設給出的兩個節點都在樹中存在

yes樣例對於下面這棵二叉樹

4

/ \3 7

/ \5 6

/**

* definition of treenode:

* class treenode

* }*/class solution

if(root==p)

bool found=findnode(root->left,p);

if(!found)

return found;

}treenode *lowestcommonancestor(treenode *root, treenode *a, treenode *b)

if(root==a||root==b)

if(findnode(root->left,a))

else

}else

else}}

};

另一種思路:

先求出從根節點到兩個節點的路徑;

然後比較兩條路徑,最後乙個相同的節點就是他們在二叉樹中的最低公共祖先。

其實將問題轉化為求鍊錶第乙個相交的節點。

lintcode 最近公共祖先

題目 給定一棵二叉樹,找到兩個節點的最近公共父節點 lca 最近公共祖先是兩個節點的公共的祖先節點且具有最大深度。definition of treenode public class treenode 初首先看看3和5,這兩個節點分居根節點4的兩側,如果可以從子節點往父 節點遞推,那麼他們將在根節...

LintCode 88 最近公共祖先

給定一棵二叉樹,找到兩個節點的最近公共父節點 lca 最近公共祖先是兩個節點的公共的祖先節點且具有最大深度。假設給出的兩個節點都在樹中存在 樣例 樣例 1 輸入 1,1 輸出 1 解釋 二叉樹如下 只有乙個節點 1lca 1,1 1 樣例 2 輸入 3,5 輸出 4 解釋 二叉樹如下 4 3 7 5...

LintCode 88 最近公共祖先

給定一棵二叉樹,找到兩個節點的最近公共父節點 lca 最近公共祖先是兩個節點的公共的祖先節點且具有最大深度。注意事項 假設給出的兩個節點都在樹中存在 樣例對於下面這棵二叉樹 標籤code definition of treenode class treenode class solution pat...