非递归中序遍历:关键是最左节点的寻找 public static void inOrder(Node root) { java.util.Stack stack = new java.util.Stack<Node>(); Node current = root; if(root != null) { stack.push(root); while(!stack.empty()) { if(current.leftChild != null) { stack.push(current.leftChild); current = current.leftChild; } else { current = (Node)stack.pop(); visit(current); if(current.rightChild != null) { stack.push(current.rightChild); } } } } }