ルートが座標 (x,y) を持つ座標平面のバイナリ ツリーが与えられます。このツリーの x 軸上の最大射影を見つける必要があります。つまり、基本的に、このツリーの最大幅を見つける必要があります。ツリーも歪んでいる可能性があります。
例:
1
/ \
2 3
/ / \
4 5 6
Width = 5
1
/ \
2 3
/
4
Width = 4
1
/
2
/
4
Width = 3
私のロジックは、基本的に左端のノードと右端のノードを見つけて、それらの x 座標を減算することでした。ルートから左の部分木に行くと にx
なりx-1
、 y になりy+1
、右の部分木に行くと にx
なりx+1
ます。これら 2 つの座標 xLeft と xRight を見つけると、最大幅を見つけることができます。しかし、私はそれをコーディングするのに苦労しました。
誰もがそれについて行く方法を教えてもらえますか? 宿題ではありませんが、どこかで読んだプログラミングのパズルです。