Binary Search Tree Property
You're not wrong, but neither are they. The normal formulation is to have the left subtree values be strictly less than ($&lt;$) the current value and the right greater than or equal to ($\geq$) the current value, or vice versa ($\leq$ and $&gt;$), however using $\leq$ and $\geq$ still results in a working BST in the sense that the tree provides an ordering. (Try constructing a few, you'll see that the difference is that if you have repeated values, they can get spread over the right-most part of the left subtree and the left-most part of the right subtree instead of being in one or the other).

To see that it still works, consider the cases when searching the tree:


$y = x$, you've already found it, so you can stop here;
$y &lt; x$, it must be in the left subtree (if $y &lt;x$ then $y \leq x$);
$y &gt; x$, it must be in the right subtree.


So you can see that the operation is identical, the choice at each node remains unambiguous.

EDIT Just to highlight Svick's excellent point in the comments, if you're searching for all nodes with the same value, the "$\leq,\geq$" case introduces complications - it may require more than one pass to find all such nodes (a full traversal will get them all of course, if it's an inorder traversal you even get them in a row).