3 ms Java solution without recursive
public ListNode insertionSortList(ListNode head) {\n        \n\t\tif(head == null || head.next == null) {\n            return head;\n         }    \n         Li
public ListNode insertionSortList(ListNode head) {\n        \n\t\tif(head == null || head.next == null) {\n            return head;\n         }    \n         ListNode newHead = new ListNode(0);\n         newHead.next = head;\n        \n         while(head.next != null) {\n             if (head.val > head.next.val) {\n                 ListNode curr = head.next;\n                 ListNode prev = newHead;\n                 while(prev.next.val < curr.val) {\n                   prev = prev.next;\n                 }\n                 head.next = curr.next;\n                 curr.next = prev.next;\n                 prev.next = curr;\n             } \n             else {\n                 head = head.next;\n             }\n        } \n        return newHead.next;\n    }
[]