在Java中,我们可以通过构建树节点对象来将一个List转换为树结构
在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转换为树结构,并获取根节点。
版权声明
本文仅代表作者观点,不代表博信信息网立场。