1.前序 中 左 右 (以根节点为基点):先遍历根节点再是左节点,再是由节点
如图遍历结果为:1 2 3
代码:
//前序
public void firstRead(Node root) {
//先遍历根节点
System.out.print(root.getValue()+"\t");
if(root.getLeft()!=null) {
//遍历左节点
firstRead(root.getLeft());
}
if(root.getRight()!=null) {
//遍历有节点
firstRead(root.getRight());
}
}
2.中序 左 中 右
上图结果应为:2 1 3
//中续
public void secondRead(Node root) {
//先看root有没有左孩子
if(root.getLeft()!=null) {
secondRead(root.getLeft());
}
//然后输出value
System.out.print(root.getValue()+"\t");
//然后遍历右孩子
if(root.getRight()!= null) {
secondRead(root.getRight());
}
}
3.后续 左 右 中
上图结果应为 2 3 1
//后续
public void lastRead(Node root) {
if(root.getLeft()!= null) {
lastRead(root.getLeft());
}
if(root.getRight()!= null) {
lastRead(root.getRight());
}
System.out.print(root.getValue()+"\t");
}