在以下代码中node
已被重用。现在保持原样是好的还是建议创建一个新的参考变量说nodePopped
?
public void preOrder(TreeNode node) {
final Stack<TreeNode> stack = new Stack<TreeNode>();
do {
System.out.println(node.item);
while (node != null) {
stack.push(node.left); // just like a function call
}
node = stack.pop(); // OR TreeNode nodePopped = stack.pop() ?
if (node.right != null) {
stack.add(node);
}
} while (!stack.isEmpty());
}
如果代码有错误请忽略,请只关注已经提出的问题。感谢。
答案 0 :(得分:7)
"Is it recommended to reuse reference variables or to prevent reuse?"
- 建议编写干净,易懂,可重复使用的代码。
答案 1 :(得分:0)
我自己的感觉是,如果我正在查看由其他人编写的具有参数的函数,并且无论出于何种原因,我首先向下看函数的底部并查看所使用的参数,我倾向于假设底部的参数将是传递给函数的参数。因此,如果有一个语句分配给中间某个参数的参数,该参数分配给参数(当然,它不会改变实际的参数而是一个临时变量从参数值开始,可能会令人困惑。出于这个原因,我倾向于在这种情况下声明一个局部变量(如nodePopped
)。这部分是一个风格问题,但我发现它对我有用,并且我在过去读过其他人时遇到了问题。修改参数时的代码。