[Java] Two pointer approach
```\n public ListNode mergeInBetween(ListNode list1, int a, int b, ListNode list2) {\n        if(list1 == null || list2 == null){\n            return null;\n   
```\n public ListNode mergeInBetween(ListNode list1, int a, int b, ListNode list2) {\n        if(list1 == null || list2 == null){\n            return null;\n        }\n        ListNode slow,fast;\n        slow=list1;\n        fast=list1;\n        int k=b-a+1;\n        for(int i=0;i<k;i++)\n            fast=fast.next;\n        \n        for(int i=1;i<a;i++)\n\t\t{ \n            slow=slow.next;\n            fast=fast.next;\n        }\n        slow.next=list2;\n        while(list2.next!=null)\n            list2=list2.next;\n\t\t\t\n        list2.next=fast.next;\n        \n        return list1;\n    }\n
['Two Pointers', 'Java']