
如何使用递归返回树结构的结果
问题描述:
想要通过递归遍历树结构,并返回目标节点到根节点的路径。
案例说明:
以“三国”为树根,如果搜索“秦朗”,“三国-曹操-秦朗”会被返回为满足条件的路径。
错误代码说明:
文章提供的原始代码在寻找命中项时存在以下问题:
- 只返回命中项,而不是树结构。
- 返回的树中包含未命中项。
解决方案:
使用自定义数据结构:
使用自定义数据结构PeopleVO来表示树中的节点,其中包含id、peopleName、parentId和children等属性。
生成树:
通过createTree方法递归地遍历节点列表,为每个节点添加子节点,最终生成一棵完整的树。
搜索路径:
通过searchPeople方法递归地遍历树,在找到目标节点后,将从根节点到目标节点的节点按顺序添加到result列表中。
重组树:
使用createTree2方法将searchPeople的结果重组为一棵树,其中目标节点到根节点的路径被顺序连接起来。
结果:
调用此方法可以获得以目标节点为叶节点,从根节点到目标节点形成的路径的树结构。










