[Java/Python 3] Straight forward codes w/ comments and analysis.
\n\njava\n    public ListNode mergeInBetween(ListNode list1, int a, int b, ListNode list2) {\n        ListNode end = list1, start = null;\n        for (int i = 
\n\n```java\n    public ListNode mergeInBetween(ListNode list1, int a, int b, ListNode list2) {\n        ListNode end = list1, start = null;\n        for (int i = 0; i < b; ++i, end = end.next) { // locate b upon termination of the loop.\n            if (i == a - 1) { // locate the node right before a.\n                start = end;\n            }\n        }\n        start.next = list2; // connect the node right before a to the head of list2, hence cut off a from list1.\n        while (list2.next != null) { // traverse till the end of list2. \n            list2 = list2.next;\n        }\n        list2.next = end.next; // connect end of list2 to the node right after b.\n        end.next = null; // cut off b from list1.\n        return list1;\n    }\n```\n\n```python\n    def mergeInBetween(self, list1: ListNode, a: int, b: int, list2: ListNode) -> ListNode:\n        start, end = None, list1\n        for i in range(b):\n            if i == a - 1:\n                start = end\n            end = end.next\n        start.next = list2\n        while list2.next:\n            list2 = list2.next\n        list2.next = end.next\n        end.next = None\n        return list1\n```\n**Analysis:**\n\nTime: O(n), space: O(1), where n = size(list1) + size(list2).
[]