@ajs: don't forget the case of the root being the only node in the tree. If the tree consists of only the root node, then the depth should return 0.
There needs to be an else if in there checking for this case, or else your function will return a depth of 1, when it should return 0:
if (root.left == null && root.right == null) return 0;