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