【发布时间】:2020-01-10 21:26:23
【问题描述】:
我编写了一个递归函数来将二叉树的所有节点添加到整数类型的列表中,但由于某种原因它一直给我带来问题。这是我的代码最初的样子:
public List<Integer> inorderTraversal(TreeNode root) {
List<Integer> res = new ArrayList<>();
helper(root, res);
return res;
}
public void helper(TreeNode root, List<Integer> res){
if(root == null){
return;
}
inorderTraversal(root.left);
res.add(root.val);
inorderTraversal(root.right);
}
但是它一直失败并且没有给我适当的解决方案。但事实证明,如果从“inorderTraversal”函数中取出第一行并将其设为全局,则此代码有效:
List<Integer> res = new ArrayList<>();
有人可以向我解释为什么这会产生影响以及为什么最初会失败吗?
【问题讨论】:
标签: java tree binary-tree traversal inorder