simple python solution
'''\nclass Solution(object):\n    \n    def insertionSortList(self, head):\n        """\n        :type head: ListNode\n        :rtype: ListNode\n        """\n  
'''\nclass Solution(object):\n    \n    def insertionSortList(self, head):\n        """\n        :type head: ListNode\n        :rtype: ListNode\n        """\n        if not head:\n            return head\n        dummy = ListNode(0)\n        dummy.next = head\n        curr = head\n        while curr.next:\n            if curr.next.val < curr.val:\n                pre = dummy\n                while pre.next.val < curr.next.val:\n                    pre = pre.next\n                tmp = curr.next\n                curr.next = tmp.next\n                tmp.next = pre.next\n                pre.next = tmp\n                \n            else:\n                curr = curr.next\n        return dummy.next\n'''
[]