1.タイトル
二分木を入力し、木の深さを見つけます。ルートノードからリーフノードに通過するノード(ルートノードとリーフノードを含む)は、ツリーのパスを形成し、最長のパスの長さがツリーの深さです。
2、分析とコード
1.再帰
(1)考える
質問から:
現在のノードをルートノードとする二分木の深さ= max(左のサブツリーの深さ、右のサブツリーの深さ)+ 1;
上記のアイデアに基づいて、再帰的な方法を組み合わせることで解決できます。
(2)コード
public class Solution {
public int TreeDepth(TreeNode root) {
if (root == null)
return 0;
return Math.max(TreeDepth(root.left), TreeDepth(root.right)) + 1;
}
}
(3)結果
実行時間:16ms、占有メモリ:9288k。
3、その他
何もありません。