How to shape model based on form of another model?

Hello.

Quite stuck with this problem, I hope someone can help me.
As example, I have two tails. How can I shape straight one(1), so that it shaped exactly like curved(2)? As if they was placed on each other.
https://i.imgur.com/xu9RqHi.png

One way is to use shape keys, join as shapes. Another is to use an UV shapes addon that flattens the geometry based on UV coordinates, then use the addon or surface deform modifier to make one adhere to the other when using a shape key to get the original form back. Third is to use deform modifiers and helper objects to get the geometry close, then shrinkwrap modifier to put the geometry on the other.

Thank you for your answer.
But those two model has different number of vertices, so join as shapes doesn’t work. Can I kindly ask you to be more specific about other two methods? By steps, if you can.