Easy  C++ Code||O(N)|| fully explained||short code
Intuition\n Describe your first thoughts on how to solve this problem. \ni Have solved merge two list problem on leetcode, so from their this method came in my 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\ni Have solved merge two list problem on leetcode, so from their this method came in my mind.\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n1. Consider list1 and list2 as a head of the linkedlist.\n2. Traverse the list1 and store the address of (a-1)th node in variable.\n3. Traverse the list1 and store the address of (b+1)th node in another variable.\n4. Traverse the list2 and store the address of last node in variable.\n5. Now link (a-1)th node to list2. list2 last node to (b+1)th node.\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->O(M+N)\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->O(1)\n\n# Code\n```\n/**\n * Definition for singly-linked list.\n * struct ListNode {\n *     int val;\n *     ListNode *next;\n *     ListNode() : val(0), next(nullptr) {}\n *     ListNode(int x) : val(x), next(nullptr) {}\n *     ListNode(int x, ListNode *next) : val(x), next(next) {}\n * };\n */\nclass Solution {\npublic:\n    ListNode* mergeInBetween(ListNode* list1, int a, int b, ListNode* list2) {\n        ListNode* t1 = list1;\n        ListNode* t2 = list1;\n        for(int i = 0; i < a-1; i++) // setting t1 at its correct place, that is , at (a-1) nodes from starting\n        t1 = t1 -> next;\n        for(int i = 0; i < b; i++) // setting t2 at its correct place, that is , at b nodes from starting \n        t2 = t2 -> next;\n        ListNode* temp = t2 -> next; // storing the track of rest of the list after b nodes\n        t1 -> next = list2; // merging list2 in list1.\n        ListNode* t3 = list2;\n        while(t3 -> next != NULL)\n        t3 = t3 -> next;\n\n        t3 -> next = temp; // t3->next is NULL, so merging the track of list1 after b nodes.\n        return list1;\n    }\n};\n```
['Linked List', 'C++']