Java Code
\nclass Solution {\n    public ListNode insertionSortList(ListNode head) {\n        ListNode start = new ListNode();\n        start.next = head;\n        ListNo
```\nclass Solution {\n    public ListNode insertionSortList(ListNode head) {\n        ListNode start = new ListNode();\n        start.next = head;\n        ListNode curr = head, prev = start;\n        while(curr != null){\n            if(curr.next != null &&(curr.next.val < curr.val)){\n                // Insertion\n                while(prev.next != null && (prev.next.val < curr.next.val))\n                    prev = prev.next;\n                ListNode temp = prev.next;\n                prev.next = curr.next;\n                curr.next = curr.next.next;\n                prev.next.next = temp;\n                prev = start;\n            } else \n                curr = curr.next;\n        }\n        return start.next;\n    }\n}\n```
[]