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++;
}
}
}