学堂 学堂 学堂公众号手机端

在Java中,我们可以通过构建树节点对象来将一个List转换为树结构

lewis 2年前 (2023-11-16) 阅读数 7 #技术

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

importjava.util.ArrayList; importjava.util.HashMap; importjava.util.List; importjava.util.Map; classTreeNode{ intval; List<TreeNode>children; publicTreeNode(intval){ this.val=val; this.children=newArrayList<>(); } } publicclassListToTree{ publicstaticTreeNodelistToTree(List<Integer>list){ Map<Integer,TreeNode>map=newHashMap<>(); TreeNoderoot=null; for(Integerval:list){ TreeNodenode=newTreeNode(val); map.put(val,node); } for(Integerval:list){ TreeNodenode=map.get(val); if(val==0){ root=node; }else{ TreeNodeparent=map.get((val-1)/2); parent.children.add(node); } } returnroot; } publicstaticvoidmain(String[]args){ List<Integer>list=newArrayList<>(); list.add(0); list.add(1); list.add(2); list.add(3); list.add(4); list.add(5); TreeNoderoot=listToTree(list); } }

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


版权声明

本文仅代表作者观点,不代表博信信息网立场。

热门