Croydon has a curious anomaly that makes it stand out not just from the rest of London, but from the rest of Britain. Its head postal district is CR0 instead of CR1. Not only that, but Croydon completely lacks a CR1 postcode.
To understand why this is so weird see the video below on how the postcode system evolved. Every postal code has a 1 district (eg. N1, or SW1), which is its head district (usually home to the head office or sorting office). The West End is an irregularity here; it was assigned the W1 code despite Paddington being the area's head district. Paddington got assigned the code W2 instead.
Which brings us back to CR1 and CR0 (that's a zero, not the letter 'o'). In 1966 Croydon became the second area in the country to be given an experimental postcode (the first was Norwich), a scheme intended to make it easier to sort letters for delivery.
In this new system, the head Croydon postcode district became CRO (the first three letters of the area — Norwich was similarly given the code NOR) and the adjacent districts were CR2, CR3, etc. When the national system was standardised a few years later, the first part of all postcodes was formatted to consisted of two letters and a number. In Croydon's case, it was decided that the letter 'O' was close enough to the number zero to only change slightly.
That's why the head district for Croydon is CR0.
However, Croydon isn't the only area with a 0 area. Harrow also has that honour with HA0 covering Alperton, Sudbury, Sudbury Hill, Wembley Central and North Wembley. It does also have a HA1 postcode though, so this isn't the same situation as in Croydon. We can't seem to find any reason for its existence, if you know, do tell us down in the comments.