LCA in BT
/***
You have two singly linked lists that are already sorted, you have to merge them
and return a the head of the new list without creating any new extra nodes. The returned list should be sorted as well
***/
#include<iostream>
using namespace std;
struct node {
int val;
node *next;
};
node * mergelist(node *n1, node *n2) {
node *n, *head;
if(n1->val < n2->val) {
n = n1;
head = n;
n1 = n1->next;
} else {
n = n2;
head = n;
n2 = n2->next;
}
while(1) {
if(n1 == nullptr) {
n->next = n2;
break;
}
else if(n2 == nullptr) {
n->next = n1;
break;
}
else {
if(n1->val < n2->val) {
n->next = n1;
n1 = n1->next;
n = n->next;
} else {
n->next = n2;
n2 = n2->next;
n = n->next;
}
}
}
return head;
}
void main() {
node n[6];
for (int i=0; i<6; i++)
{
n[i].val = i;
n[i].next = nullptr;
}
n[0].next = &n[2];
n[1].next = &n[3];
n[2].next = &n[5];
n[3].next = &n[4];
node *m = mergelist(&n[0], &n[1]);
cout<<"test"<<endl;
}
Comments
Post a Comment