Minimum and Maximum Leaf Depth in a Tree
Jump to navigation
Jump to search
Internal
Overview
Context: Tree Representation in Memory
public static int minLeafDepth(N n, int depth) {
if (n == null) {
return Integer.MAX_VALUE;
}
if (n.l == null && n.r == null) {
// I am a leaf
return depth;
}
return Math.min(minLeafDepth(n.l, depth + 1), minLeafDepth(n.r, depth + 1));
}
public static int maxLeafDepth(N n, int depth) {
if (n == null) {
return Integer.MIN_VALUE;
}
if (n.l == null && n.r == null) {
// I am a leaf
return depth;
}
return Math.max(maxLeafDepth(n.l, depth + 1), maxLeafDepth(n.r, depth + 1));
}