我有一个二叉树,它在 MATLAB(例如a{1}{2}
)中作为单元格数组访问。我能够编写一个递归函数(如下),它能够访问树的所有边缘节点。我的下一个任务是用其他值替换边缘节点的值。但是,我在这部分遇到了困难。每次调用递归函数时,这些值不会保留它们的新值,而是恢复到原来的值。有没有一种简单的方法来确保函数中的值保持更新?谢谢!
这是代码:
function findLeaves(a)
if(iscellstr(a) == 1) % just above fringe node
a{2} = 2; %change fringe node to value 2
else
if(length(a) == 3 || length(a) == 2) % go left
findLeaves(a{2});
end
if (length(a) == 3) % go right
findLeaves(a{3});
end
end
end