As the smart meters are vulnerable to physical attacks as well as cyber attacks, electricity theft in smart grids is much easier to commit and more difficult to detect than that in traditional power grids. In this paper, to facilitate the inspection of the malicious meters, a full and complete binary inspection tree whose leaves stand for smart meters is employed as a logical structure. We can logically configure an inspector (a meter for detection) at any node on the tree. By calculating the difference between the inspector's reading and the summation of the readings reported from the smart meters on the subtree of one node, as well as the difference between the total amount of stolen electricity on the subtrees of an internal node and its left child, we propose a difference-comparison-based inspection algorithm which allows the inspector to skip a large number of nodes on the tree and hence accelerates the detection speed of the malicious meters remarkably. Furthermore, for quickly identifying a complete set of malicious meters, we propose an adaptive reporting mechanism which adopts much shorter reporting periods during the inspection process. Analysis with proofs about the performance bounds of the proposed algorithm in terms of the number of inspection steps is provided. Simulations not only validate the theoretical analysis, but also show the superiority of the proposed algorithm over the existing works in terms of inspection steps, regardless of the ratio and the permutation of malicious meters.