If you have any query feel free to chat us!
Happy Coding! Happy Learning!
To merge two sorted singly linked lists into a single sorted linked list, you can use a simple iterative approach. Here's how you can do it:
- Create a new dummy node to serve as the head of the merged list.
- Initialize two pointers,
current
andtemp
, pointing to the dummy node.- Compare the values of the nodes from the two input lists. Attach the smaller node to the
temp
pointer, and move the corresponding list's pointer forward.- Repeat the comparison and attaching process until you reach the end of one of the lists.
- Attach the remaining nodes from the non-empty list to the
temp
pointer.- The merged list is now connected through the
dummy.next
pointer.Here's a C++ implementation of this approach:
cppCopy code
#include <iostream> class Node { public: int data; Node* next; Node(int value) : data(value), next(nullptr) {} }; Node* mergeSortedLists(Node* list1, Node* list2) { Node dummy(0); // Dummy node to serve as the head of the merged list Node* temp = &dummy; // Pointer to the current position in the merged list while (list1 && list2) { if (list1->data < list2->data) { temp->next = list1; list1 = list1->next; } else { temp->next = list2; list2 = list2->next; } temp = temp->next; } // Attach remaining nodes from the non-empty list if (list1) { temp->next = list1; } if (list2) { temp->next = list2; } return dummy.next; // Merged list starts from dummy.next } void displayList(Node* head) { while (head) { std::cout << head->data << " "; head = head->next; } std::cout << std::endl; } int main() { Node* list1 = new Node(1); list1->next = new Node(3); list1->next->next = new Node(5); Node* list2 = new Node(2); list2->next = new Node(4); list2->next->next = new Node(6); std::cout << "List 1: "; displayList(list1); std::cout << "List 2: "; displayList(list2); Node* mergedList = mergeSortedLists(list1, list2); std::cout << "Merged List: "; displayList(mergedList); return 0; }
In this example, two sorted linked lists (
list1
andlist2
) are merged using themergeSortedLists
function. The merged list is displayed using thedisplayList
function.The time complexity of this approach is O(N + M), where N and M are the lengths of the input lists, as each node is visited exactly once.
Comments: 2
SCIAKU Team please upload 1st video of TREE please please please, please
I bought this course, it worth it!
Hi i want to buy this course but you dont have master card payment method please let me know how i can buy it
Dear mk.info.work, Now we have all types of payment options. If you need to purchase just checkout our official website