2025-08-30 递归算法中数组引用的陷阱:为何直接推送可变数组会导致空结果 递归算法中数组引用的陷阱:为何直接推送可变数组会导致空结果 在编写递归算法时,开发者常常会遇到一个反直觉的现象:明明在每次递归调用时都向数组添加了元素,最终返回的却是一个空数组。这种现象背后隐藏着可变对象的引用传递这一关键机制。我们以经典的树形结构遍历为例,逐步拆解问题本质。问题重现:一个"简单"的递归示例javascript function traverse(node, result = []) { if (!node) return;result.push(node.value); // 看似正确的操作 traverse(node.left, result); traverse(node.right, result);return result; }// 测试用例 const tree = { value: 1, left: { value: 2 }, right: { value: 3 } };console.log(traverse(tree)); // 期望输出 [1,2,3],实际输出?在Python中同样存在类似情况:python def traverse(node, result=[]): ... 2025年08月30日 5 阅读 0 评论