java怎么将list转为树结构

   2024-11-02 7970
核心提示:在Java中,我们可以通过构建树节点对象来将一个List转换为树结构。下面是一个示例代码:import java.util.ArrayList;import java

在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转换为树结构,并获取根节点。

 
举报打赏
 
更多>同类网点查询
推荐图文
推荐网点查询
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号