Minimum and Maximum Leaf Depth in a Tree

From NovaOrdis Knowledge Base
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));
}