fix bugs, left boundary might contain right child, and it will always print out, which is not like right boundary