沧州做网站哪家公司好,网站开发外包合同模板,wordpress js,关键词搜索排名公司递归思路
传入数组 传入单个对象
传入数组
内部先遍历进行单个对象处理#xff0c; 再递归单个对象的children
传入对象
内部先处理当前对象#xff0c;再遍历对象children#xff0c;对每个children进行递归调用。
需要处理返回值的情况 一种是传入对象指针#xff…递归思路
传入数组 传入单个对象
传入数组
内部先遍历进行单个对象处理 再递归单个对象的children
传入对象
内部先处理当前对象再遍历对象children对每个children进行递归调用。
需要处理返回值的情况 一种是传入对象指针内部操作对象的值就好了 一种是逐层返回结果需要处理结果的合并。
传值处理
函数的两种传值问题 / 一种传递指针进去
var a{maxLevel 0}
function func(a){a.maxLevel 1;
}
func(a);
此时
a.maxLevel 1;/// 一种传递值进去
var maxLevel 0
function func(a){a 1;
}
func(maxLevel);此时 maxLevel 0。
逐层返回结果
把树变成列表这种返回列表的处理简单
listnew list()
list. add(obj)
for list. addAll(func(obj. children[i]))
return list单值就需要做合并处理比如累加、取最大值、最小值。以取最大值为例
var resultobj. value
for var tmpfunc(obj. children[i])if(tmpresult)resulttmp
return result;这里只是列举一些常见的处理方式不同的情况还是可能需要些区分的处理