// Remark: this is just a fragment of code, it cannot be compiled directly. static void inOrder(TreeNode root) { TreeNode prev = null; TreeNode current = root; TreeNode next = null; while (current != null) { if (prev == current.getParent()) { prev = current; next = current.getLeft(); } if (next == null || prev == current.getLeft()) { visit(current); prev = current; next = cuurent.getRight(); } if (next == null || prev == current.getRight()) { prev = current; next = cuurent.getParent(); } current = next; } // end while } // end inOrder