树形结构与线性列表双向转换的实现方式。
1、 打开IDE,新建一个Java工程,项目整体目录结构参见下图所示。
2、 新建Treenode.java类文件,用作节点数据模型的载体,其完整代码实现如下:

3、 创建名为generateTree.java的主类,在main方法中初始化一个List集合用于模拟原始平铺数据,并编写核心逻辑完成结构转换。
4、 在generateTree.java中分别定义toTree()和toTreeChildren()两个方法,用于将一维列表递归组装为嵌套树形结构,具体编码如下:

5、 在generateTree.java类中补充treetolist()方法,用于对已构建的树形对象进行深度优先遍历,还原为顺序排列的扁平化列表,代码实现如下:
6、 对generateTree.java右键操作,选择“Run As → Java Application”执行程序,最终控制台输出结果如下图所示:











