编辑代码

package com.xinheyun;

import java.util.ArrayList;
import java.util.LinkedList;

public class Main {
    public static class Node {
        int id;
        ArrayList<Node> children = new ArrayList<>();
        int level = 0;

        public Node(int id) {
            this.id = id;
        }

        @Override
        public String toString() {
            return String.format("id:%s,level:%s", this.id, this.level);
        }
    }

    public static void main(String[] args) {
        Node a = new Node(1);
        Node b = new Node(2);
        Node c = new Node(3);
        Node d = new Node(4);
        Node e = new Node(5);
        Node f = new Node(6);
        a.children.add(b);
        a.children.add(c);
        b.children.add(d);
        b.children.add(e);
        b.children.add(f);
        LinkedList<Node> nodes = new LinkedList<>();
        nodes.add(a);
        measureLevel(nodes);
    }
    
    public static void measureLevel(LinkedList<Node> nodes) {
        if(nodes == null)  {
            return;
        }
        Node node = null;
        int level = 1;
        while (nodes.size() != 0 && (node = nodes.pop()) != null) {

            for (int i = 0; i < node.children.size(); i++) {
                node.children.get(i).level  = level;
                nodes.add(node.children.get(i));
            }

            System.out.println(node.toString());
            level++;
        }
    }
}