One of my friends had an interview from Altera, who just be bought by Intel for 17 Billion dollar! He talked about one easy-remember question.
How do I calculate the number of “only child”-nodes in a binary tree?
Actually, it's pretty easy. Just do recursive to calculate the left and the right side from the head until no child below at all.public static int countOnlys(TreeNode t)
{
if(t == null)
return 0;
if(isAnOnlyChild(t))
return 1;
return countOnlys(t.getLeft()) + countOnlys(t.getRight());
}
and if you wonder how to write a function of isAnOnlyChild or you want to calculate how many children of a single node, see below:
public static boolean isAnOnlyChild (TreeNode t){
int count = 0;
if(t.getLeft() != null ) count++;
if(t.getRight() != null) count++;
return count==1?true:false;
}
That's pretty about it. No hard at all.