CSC301: Tree code: The winner is... [45/52] |
public int size () { return size (root); } private int size (Node x) { if (x == null) return 0; int sz = 1; sz += size (x.left); sz += size (x.right); return sz; } |
public int size () { if (root == null) return 0; return size (root); } private int size (Node x) { int sz = 1; if (x.left != null) sz += size (x.left); if (x.right != null) sz += size (x.right); return sz; } |
What are the advantages of each approach?
In general, which should you prefer?
Nullable has one static conditional (if
statement). Non-nullable has three!
However, we have exactly the same number of dynamic
conditionals (executions of the if
statement).
Nullable has about twice as many dynamic function calls! Count them!