An Efficient Energy Hole Alleviating Algorithm for Wireless Sensor Networks