リーフノードの最新の共通の祖先

最も深いリーフノードの最も近い共通の祖先を見つけ、あなたのバイナリツリーのルートノードを与えます。

コード:

/ **
*バイナリツリーノードの定義。
*公共のクラスのTreeNode {
* int型のval;
*のTreeNodeは左。
*ツリーノードを右。
*ツリーノード(INT X){ヴァル= X。}
*}
* /
クラスのソリューション{
パブリックツリーノードlcaDeepestLeaves(ツリーノードのルート){
IF(ルート== NULL)
戻りヌル。
INT左=深さ(root.left)。
右=深さ(root.right)をint型、
(==右から左)の場合
、戻りルート。
それ以外の場合(左>右)
lcaDeepestLeaves(root.left)を返します。
他の
リターンlcaDeepestLeaves(root.right)。

}
int型の深さ(ツリーノードのルート)
{
IF(ルート== NULL)
戻り0;
INT左=深さ(root.left)。
右=深さ(root.right)をint型、
戻り1 + Math.max(左、右)。
}
}

おすすめ

転載: www.cnblogs.com/xiezi1015/p/11224189.html