Minimum and Maximum Leaf Depth in a Tree

From NovaOrdis Knowledge Base
Revision as of 23:32, 10 November 2021 by Ovidiu (talk | contribs) (→‎Overview)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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));
}