先序、中序、后序遍历这三种遍历都是根据根节点而言的;
public ArrayList<Node> preIterator(Node node){//先序遍历
ArrayList<Node> list=new ArrayList<>();
list.add(node);
if(node.left!=null){
list.addAll(preIterator(node.left));
}
if(node.right!=null){
list.addAll(preIterator(node.right));
}return list;
}
public ArrayList<Node> inIterator(Node node){//中序遍历
ArrayList<Node> list=new ArrayList<>();
if(node.left!=null){
list.addAll(inIterator(node.left));
}
list.add(node);
if(node.right!=null){
list.addAll(inIterator(node.right));
}return list;
}
public ArrayList<Node> postIterator(Node node){//后序遍历
ArrayList<Node> list=new ArrayList<>();
if(node.left!=null){
list.addAll(postIterator(node.left));
}
if(node.right!=null){
list.addAll(postIterator(node.right));
}
list.add(node);
return list;
}