Different from traditional networks, wireless sensor networks (WSNs) are highly dependent on specific applications and are severely constrained by energy, storage capacity and computing power. To prolong the lifetime of the whole networks, energy awareness is an essential consideration when we design or analyze routing protocols. In this paper, we present a review of recent routing protocols in WSNs and classify them into three categories based on the network structure in WSNs. Then we describe the existing routing protocols and discuss their advantages and disadvantages of each routing algorithm. Finally we conclude this paper with open research issues and challenges.