I think when using dijsktra algorithm, each router's shortest-path tree can be different. And in link-state routing, all routers have same topology of total network.
Both of these are true - yes, each router's shortest path tree is unique as it is calculated from their point of view (themselves as the root of the tree). And yes, all routers have an identical view of the network.
Therefore, does each router have a map(shortest-path tree) of all other routers??
No, the local router is only interested in the shortest path from itself to all other nodes - it only has the ability to influence traffic flow for packets passing through it, so other trees/views from other routers are irrelevant.
Given your example of 3 routers with links 1-2-3-1. From 1's point of view (shortest path tree), the shortest path to 2 is the 1-2 link. From 3's point of view the shortest path is the 3-2 link. 1 doesn't need to know the path 3-2 (even though it has that information).