流程:
节点 -> left子节点(包括其子树)-> right子节点(包括其子树)。
非递归形式:
//先序遍历
public static void preOrder(Node root){
Stack stack = new Stack();
Node node = root;
while(node != null || stack.size() > 0){
//压入所有左节点,压入前打印
while(node != null){
System.out.println(node.data);
stack.push(node);
node = node.left;
}
if(stack.size() > 0){
node = stack.pop();
node = node.right;
}
}
}