二叉树的遍历
深度遍历
public void mid(TreeNode node) {
if(node!=null) {
mid(node.leftChild);
System.out.println(node.value);
mid(node.rightChild);
}
}
public void before(TreeNode node) {
if(node!=null) {
System.out.println(node.value);
before(node.leftChild);
before(node.rightChild);
}
}
public void after(TreeNode node) {
if(node!=null) {
after(node.leftChild);
after(node.rightChild);
System.out.println(node.value);
}
}
广度遍历
public void Order(TreeNode root) {
LinkedList<TreeNode> queue =new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()) {
TreeNode temp=queue.pop();
System.out.print(temp.value+" ");
if(temp.leftChild!=null) {
queue.add(temp.leftChild);
}
if(temp.rightChild!=null) {
queue.add(temp.rightChild);
}
}
System.out.println();
}