You are on page 1of 3

WORKSHEET 3

Student Name: Ishu Rattan UID: 20BCS7755

Branch: BE-CSE Section/Group: 806-B


Semester: 5th Subject: Competitive Coding Lab

LINKED LIST
Question Statement 3.1– Compare two linked lists

You’re given the pointer to the head nodes of two linked lists. Compare the data in the
nodes of the linked lists to check if they are equal. If all data attributes are equal and
the lists are the same length, return 0 . Otherwise, return 1.
Link : https://www.hackerrank.com/challenges/compare-two-linked-lists/problem?isFullScreen=true.

Code –
bool compare_lists(SinglyLinkedListNode* head1, SinglyLinkedListNode* head2)
{
while(head1!=nullptr && head2!=nullptr && head1->data==head2->data )
{
head1=head1->next;
head2=head2->next;

}
if(head1==head2)
{
return 1;
}
else
{
return 0;
}
}
Output –

Question Statement 3.2 – Inserting a Node Into a Sorted Doubly Linked List

Given a reference to the head of a doubly-linked list and an integer, create a new
Doubly Linked List Node object having data value and insert it at the proper location to
maintain the sort.
Link:https://www.hackerrank.com/challenges/insert-a-node-into-a-sorted-doubly- linkedlist/problem?
isFullScreen=true

Code –
DoublyLinkedListNode* sortedInsert(DoublyLinkedListNode* llist, int data)
{ DoublyLinkedListNode *Node = new DoublyLinkedListNode(data);
DoublyLinkedListNode *temp = llist;
DoublyLinkedListNode *prev, *next;

while(temp != NULL)
{
if(data < temp->data && temp->prev == NULL)
{
llist->prev =
Node; Node->next = llist;
llist = Node; return
llist;
}
else if(data > temp->data && temp->next == NULL)
{
temp->next = Node;
Node->prev = temp; return
llist;
}
else if(data <= temp->data && temp->prev != NULL )
{
next =
temp; temp = temp-
>prev;
prev = temp; Node-
>next = next;
Node->prev =
prev; temp->next
= Node;
temp = next; temp-
>prev =
Node; return
llist;
} temp =
temp->next; }
return llist;
}

Output –

You might also like