static ArrayList<LinkedList<Node>> mygetLevelNode(Node root)
{
//initial the linked list
ArrayList<LinkedList<Node>> result = new ArrayList<LinkedList<Node>>();
LinkedList<Node> ll = new LinkedList<Node>();
ll.add(root);
int level = 0;
result.add(level,ll);
while(true)
{
//for every row there is a linked list we firstly create it
LinkedList<Node> ll2 = new LinkedList();
for(int j = 0;j<result.get(level).size();++j)// level will ++ in the behind; we only get the "former" level
{
Node n = result.get(level).get(j);
if(n.left_child!=null) ll2.add(n.left_child);
if(n.right_child!=null) ll2.add(n.right_child);
}
level++;
if(ll2.size()>0)
{
result.add(level,ll2);
}
else
{// if the ll2.size <= 0 that is means we reach the lowest-level-leaves so we break the while(true) loop
break;
}
}
return result;
}