How to implement insertion sort on linked list with best case performance O(n)?
Best case performance is attained when only one element is not in place. Assume the following list 

1->2->3->4->0

You can easily show that it takes you $O(n)$ to sort via insertion sort: The inner while loop will run $n$ times when the outer loop reaches node 0. Otherwise, it will never be executed.