读书人

Java兑现二叉树的层次遍历

发布时间: 2012-10-09 10:21:45 作者: rapoo

Java实现二叉树的层次遍历
节点类,包括名称与子节点。
class TestNode {
String name = null;
List<TestNode> children = new ArrayList<TestNode>();
//setter、getter
}

遍历函数:
public void levelOrder(TestNode root) {
Queue<TestNode> nodes = new LinkedList<TestNode>();
TestNode currNode = null;
List<TestNode> children = null;
assert(root != null);
nodes.add(root);

while (!nodes.isEmpty()) {
currNode = nodes.poll();//出队列
System.out.print(currNode.getName());
children = currNode.getChildren();

//子节点入队列
if (children != null && !children.isEmpty()) {
for (int i = 0; i < children.size(); i++) {
nodes.add(children.get(i));
}
}
}
}

读书人网 >编程

热点推荐