Maximum Depth of Binary Tree
Problem (yeniden ifade)
Bir ikili ağacın kökü verildiğinde, en büyük derinliğini (en uzun kök-yaprak yolu üzerindeki düğüm sayısı) döndür.
Sezgi
Derinlik(düğüm) = 1 + max(derinlik(sol), derinlik(sağ)); boş düğümün derinliği 0.
Yaklaşımlar
Özyinelemeli DFS
DoğrulanmadıFikir. Base null→0; children’ın max’ının 1 fazlasını döndür.
Yürüyüş. Yüksekliği 3 olan dengeli ağaç → cevap 3.
Trade-off. BFS seviye sayımı eşdeğer; DFS yazımı en kısa.
export class TreeNode {
val: number;
left: TreeNode | null;
right: TreeNode | null;
constructor(val = 0, left: TreeNode | null = null, right: TreeNode | null = null) {
this.val = val;
this.left = left;
this.right = right;
}
}
export function maxDepth(root: TreeNode | null): number {
if (!root) return 0;
return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
}
export class TreeNode {
val: number;
left: TreeNode | null;
right: TreeNode | null;
constructor(val = 0, left: TreeNode | null = null, right: TreeNode | null = null) {
this.val = val;
this.left = left;
this.right = right;
}
}
export function maxDepth(root: TreeNode | null): number {
if (!root) return 0;
return 1 + Math.max(maxDepth(root.left), maxDepth(root.right));
}
Şablon bağlantısı
Tree DFS parent’a toplu bilgi döndürür.
Yansıma
- null derinlik 0. Yaprak 1. Cevap
1 + max(sol, sağ). - Çarpık zincir n. Dengeli ağaç kabaca log n.
- Boş ağaç 0. BFS seviye sayısı aynı cevabı verir.