Single track from Maidenhead via Furze Platt and Cookham to Bourne End, where off peak the 2 carriage train reverses at platform 2 and continues to Marlow. Same thing in reverse for the train to get back to Maidenhead - round trip in just uner the hour.
Operation is different at peak time. The train leaves Maidenhead via Furze Platt and Cookham to Bourne End, but it arrives there at platform 1 - longer, but only accessible from the Maidenhead direction. At the same time that the train from Maidenhead arrives in platform one, a second train arrives from Marlow in platform 2. Passengers from Maidenhead walk around from platform 1 to platform 2 and join the train that's just arrived there from Marlow ... which sets off a couple of minutes later back to Marlow. Passengers from Marlow get off their train in platform 2, and walk around to platform 1 to the train that's just arrived from Maidenhead, and sets of back for there a couple of minutes later.
A typical swap at Bourne End
17:17 from Marlow arrives at 17:24 at platform 2
17:16 from Maidenhead arrives at 17:27 at platform 1
17:30 train leaves from platform 2 for Marlow (gets there at 17:37)
17:31 train leaves from platform 1 for Maidenhead (gets there at 17:42)
By having 2 trains swapping over their passengers halfway, the service can be increased to every 30 minutes rather than every hour.
I understand that passenger flow is significnatly biased FROM Marlow in the morning and back there in the evening. That bias leads to lots of empty seats in one direction, but it does mean that you don't get two surges of people meeting each other head on around the end of the platform at Bourne End.