问题描述
就是查出所有的节点保存到list集合里面。root ->节点1 -->n1 -->n2 --->m后台要把这种结构保存起来,在页面上面的时候就直接打出来。有个level 属性为1的话 加 -> 2 加-->显示如附件图片。用递归写,不知道我写的那个对不,反正是栈溢出了。 问题补充:柴秉承 写道
解决方案
引用恩,是啊,所以得到了重复数据啊。能不能把代码贴给我啊?我逻辑思维不是很好的,要不。。。。 通常发现问题比解决问题略为重要点,因为相比下发现问题更加考验编程经验。而编程经验是在错误中成长出来的。你既然找到了问题所在,建议你还是仔细想想怎么将问题解决,怎么避免在递归时重复进行操作。在这以后,你就会对递归有更深的理解。当然,如果你执着需要代码的话,我过段时间可以帮你稍微修改下。
解决方案二:
我认为你这段代码从设计上略有问题。listAll.add(r); listAll.addAll(index+1, list0); 怎么会存在两个添加节点的操作。就算一个是添加根节点,一个是添加叶节点。那么你如何保证当前的根节点不是上级的叶节点,那么你不就是添加了两次?
解决方案三:
我是不是可以将你的问题解释为这样。有个数据集合,包括了id与level,superid三个信息。现在需要按superid将其按一定的规律打印出来?你用到了递归,是一个思路。不过这不应该出现栈溢出才对,是不是代码被循环调用自身了。这里递归是有这个可能,不过你仔细检查一下就没多大问题了。你可以将递归调用的那一段贴出来,我帮你看看。。
解决方案四:
用Ext来从数据库得到数据动态显示tree 肯定不是楼主的那种方式 json是Ext和后台交互的主要数据格式 难道你用的不是ext?
解决方案五:
你为什么不换个角度来思考一下你要解决的问题 你不感觉你那样的解决问题方式有问题么
解决方案六:
你可以从前台往后台传JSON格式的数据 把JSON串直接保存到数据库 用的时候 直接解析、就可以了 写递归的话也可以