java怎么将list转为树结构

avatar
作者
筋斗云
阅读量:0

在Java中,我们可以通过构建树节点对象来将一个List转换为树结构。下面是一个示例代码:

import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map;  class TreeNode {     int val;     List<TreeNode> children;      public TreeNode(int val) {         this.val = val;         this.children = new ArrayList<>();     } }  public class ListToTree {      public static TreeNode listToTree(List<Integer> list) {         Map<Integer, TreeNode> map = new HashMap<>();         TreeNode root = null;          for (Integer val : list) {             TreeNode node = new TreeNode(val);             map.put(val, node);         }          for (Integer val : list) {             TreeNode node = map.get(val);             if (val == 0) {                 root = node;             } else {                 TreeNode parent = map.get((val - 1) / 2);                 parent.children.add(node);             }         }          return root;     }      public static void main(String[] args) {         List<Integer> list = new ArrayList<>();         list.add(0);         list.add(1);         list.add(2);         list.add(3);         list.add(4);         list.add(5);          TreeNode root = listToTree(list);     } } 

在这段代码中,我们首先创建一个TreeNode类来表示树节点对象,其中包含节点值和子节点列表。接着,我们通过遍历给定的List来创建树节点对象,并将它们存储在一个Map中,其中键为节点值,值为节点对象。然后,我们再次遍历List,根据节点值的关系构建树结构,并返回根节点。最后,我们可以通过调用listToTree方法将一个List转换为树结构,并获取根节点。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!