所以,我想深入打印一个二叉搜索树,我有以下代码:
public String printBalancedBSTDepth(Node head) {
if(head == null) {
// do nothing
}
else
return head.value + " " + printBalancedBSTDepth(head.left) + " " + printBalancedBSTDepth(head.right);
}
当head == null时,我不想打印任何东西。为什么Java强迫我在每种情况下都添加一个return语句?我不明白这个需要。在C语言中,你把返回放在你需要的地方,你不会像Java一样把它放在任何地方。如果我在head == null时添加“return”“”,我的字符串将如下所示:4 2 1 3 6 5 7
。许多不需要的空间......
答案 0 :(得分:1)
如果您宣布您的方法会返回String
,那么为什么不想退回?
正如其他人和你提到的那样,你可以返回一个空字符串""
。或许你可以返回null
。因此,为了避免额外的不需要的空间,您可以在打印代码中进行验证,如下所示:
if (result == null ) { // Or result.equals("")
// Do nothing, or the necessary so those unwanted spaces aren't printed
}