private int longestPathFrom(Tree node) {
		if (node.l == null && node.r == null) {
			return 0;
		}
		if (node.l == null) {
			return longestPathFrom(node.r) + 1;
		}
		if (node.r == null) {
			return longestPathFrom(node.l) + 1;
		}
		return Math.max(longestPathFrom(node.l), longestPathFrom(node.r)) + 1;
	}