您的位置:首页 > Web前端 > Node.js

FWNX-creates a linked list of all the nodes at each depth-JAVA VERSION

2013-12-29 08:11 435 查看
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;
}
test function ::
ArrayList<LinkedList<Node>> findLinkedLeve = mygetLevelNode(root);
for(LinkedList<Node> n:findLinkedLeve)
{
System.out.println("same linked list");
for(int i = 0;i<n.size();++i)
{
Node temp = n.get(i);
System.out.print(temp.data+" -> ");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: