This is my second Razer mouse, and this one has lasted much better than the last (which was a diamondback). In the original, I had replaced all of the Green LEDs with red ones to match my case at the time, because I was young and into such things. The Deathadd3r has a similar layout on the inside. This mouse is already a few years old, and lately the wheel has been acting up. Sometimes it will scroll in the wrong direction, and performing a middle click is very difficult. I figured cleaning it might help remedy this situation. To take it apart, there are three screws on the bottom, two under the top two teflon pads, which can be put back pretty safely.
There are two boards inside, each is attached to the bottom/top half by means of two screws and some plastic locks which require you to tilt the boards to remove them. The bottom board also has a little plastic tab on the side holding it in place.
Additonally there is an led stuck in the top, which makes the logo glow that you probably want to take out. Unlike the diamondback, you cannot separate the two boards, however I didn’t feel there was a good reason to clean the motherboard, as all of the switches seemed to be functioning fine.The top shell can be separated into two layers by pushing out a few plastic clear tabs on the inside of it. You need to slide it upwards to disengage the left/right mouse click assembly.
My wheel was coated in hair and a thick layer of oil… (sebum?) as well as plenty of grime everywhere. I washed all the parts in a warm/water detergent solution with a toolbrush, except the reflector for the tracker (best not to touch that).
In the end it is cleaner and actually works better. The middle mouse button still isn’t 100%, but it works much better than before, and the scrolling seems to have improved, although I suspect there is some slippage in the switch itself.






; it should produce
.
instead, we should add an additional parameter and condition, to obtain below.
after a call to reverse with
on the first node (0), the list will be
, and the call returns a pointer to ‘1’. Now we see that the trick we need to overcome is losing our place in the list as we do the block-wise reversal. I did this by keeping track of basically three positions : the first element of the block you are going to reverse, the last element of this block (which is returned by the call to reverse) and the first element of the next block to be reversed.
in both time and complexity. One other consideration is what will happen if the length of the list is not divisible by