91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java怎么將list轉為樹結構

小億
153
2024-02-29 13:52:18
欄目: 編程語言

在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轉換為樹結構,并獲取根節點。

0
峨山| 新安县| 正安县| 芜湖县| 余姚市| 桑植县| 东乡| 武隆县| 崇义县| 黄骅市| 华蓥市| 郎溪县| 房产| 灌阳县| 报价| 桂东县| 嵩明县| 连南| 承德市| 怀集县| 美姑县| 富平县| 西和县| 河北区| 承德县| 华池县| 绿春县| 芦山县| 阿坝县| 桂林市| 上饶市| 阳曲县| 疏勒县| 云浮市| 长海县| 屏东县| 稻城县| 河津市| 莱州市| 工布江达县| 贵溪市|