AC Python 192ms solution
def insertionSortList(self, head):\n        p = dummy = ListNode(0)\n        cur = dummy.next = head\n        while cur and cur.next:\n            val = cur.nex
    def insertionSortList(self, head):\n        p = dummy = ListNode(0)\n        cur = dummy.next = head\n        while cur and cur.next:\n            val = cur.next.val\n            if cur.val < val:\n                cur = cur.next\n                continue\n            if p.next.val > val:\n                p = dummy\n            while p.next.val < val:\n                p = p.next\n            new = cur.next\n            cur.next = new.next\n            new.next = p.next\n            p.next = new\n        return dummy.next\n\n\n    # 21 / 21 test cases passed.\n    # Status: Accepted\n    # Runtime: 192 ms\n    # 97.05%\n\nOf course, the solution is still O(n^2) in the worst case, but it can be faster than most implements under given test cases.\n\nTwo key points are: (1) a quick check see if the new value is already the largest (2) only refresh the search pointer p when the target is before it, in other words smaller.
['Python']