CSC403: Tree code: "Threaded" parameter with non-nullable pointer 1 [28/29] |
public int size () { if (root == null) return 0; return size (root, 1); } private static int size (Node x, int sz) { if (x.left != null) sz = size (x.left, sz + 1); if (x.right != null) sz = size (x.right, sz + 1); return sz; }
Describe the difference from the previous version.
Is it correct?
What's the invariant as we go through the tree?