如大神说的,哈夫曼树实现,有不对的地方请大家指正

public class Main {

    static class Node{
        int v;
        Node lChild;
        Node rChild;
        public Node(){}
        public Node(int v){
            this.v = v;
        }
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        List<Node> list = new ArrayList<Node>();
        for(int i=0;i<n;i++){
            list.add(new Node(scanner.nextInt()));
        }
        Node root = createHuff(list);
        System.out.println(getMin(root));
    }
    private static int getMin(Node node) {
        if(node.lChild == null){
            return 0;
        }
        if(node.lChild != null && node.rChild != null){
            return node.v + getMin(node.lChild) + getMin(node.rChild);
        }
        return 0;
    }
    private static Node createHuff(List<Node> list) {
        while(list.size()>1){
            sortList(list);
            Node parent = new Node(list.get(0).v + list.get(1).v);
            Node lChild = list.remove(0);
            Node rChild = list.remove(0);
            parent.lChild = lChild;
            parent.rChild = rChild;
            list.add(parent);
        }
        return list.get(0);
    }
    private static void sortList(List<Node> list){
        for(int i=0;i<list.size();i++){
            int index = i;
            int min = list.get(i).v;
            for(int j=i+1;j<list.size();j++){
                if(min > list.get(j).v) {
                    min = list.get(j).v;
                    index = j;
                }
            }
            if(index != i){
                Node tmp = list.get(i);
                list.set(i, list.get(index));
                list.set(index, tmp);
            }
        }
    }
}