Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Could you help me make my merge more efficient? This code in java also provided

ID: 3920326 • Letter: C

Question

Could you help me make my merge more efficient? This code in java also provided node class. please show output!

class Node{
int data;
Node next;  
Node(int d){
data = d;
next = null;
}
}

if text is needed

public void merge(LinkedList2 list, LinkedList2 list2) {
Node curr = list.head;
Node curr2 = list2.head;
Node curr3 = head;
int data;
while(curr != null && curr2 != null) {   
if(curr.data < curr2.data) {
data = curr.data;
curr = curr.next;
}
else {
data = curr2.data;
curr2 = curr2.next;
}
Node temp = new Node(data);
if(curr3 == null) {
curr3 = temp;
head = temp;
}
else {
curr3.next = temp;
curr3 = curr3.next;
}
}
while( curr!= null) {
Node same = new Node(curr.data);
if(curr3 == null) {
curr3 = same;
head = same;
}
else {
curr3.next = same;
curr3 = curr3.next;
}
curr = curr.next;
}
while( curr2!= null) {
Node same = new Node(curr2.data);
if(curr3 == null) {
curr3 = same;
head = same;
}
else {
curr3.next = same;
curr3 = curr3.next;
}
curr2 = curr2.next;
}
}
public void print() {
Node rand = head;
if(rand == null) {
return;
}
do {
System.out.print(rand.data + " ");
if(rand == tail) {
break;
}
rand = rand.next;
  
}
while(rand != null );
System.out.println();
}
public void reverseList() {
Node newHead = null;
Node tempNode = null;
while(head != null) {
tempNode = head;
head = head.next;
tempNode.next = newHead;
newHead = tempNode;
}
head = newHead;
}

public void merge(LinkedList2 list, LinkedList2 list2) Node curr list.head Node curr2 list2.head; Node curr3 head; int data; while(curr!null &curr2;! null if(curr.data curr2.data) data curr.data; curr = curr, next; else data curr2.data; curr2 curr2.next Node temp new Node(data); f(curr3null)t curr3- temp; head- temp; else curr3.next = temp: curt3 currs.net; while( curr!= null) { Node same if(curr3 == new Node(curr.data); curr3- same head- same else curr3.next- same; curr3curr3.next curr curr. next; while(curr2! null) Node same = new Node(curr2.data); f(curr3null curr3- same head same; else curr3.next- same; curr3curr3.next curr2 curr2.next

Explanation / Answer

Please find below the most effecient verison of merge function.

CODE

==============

public void merge(LinkedList2 l1, LinkedList2 l2) {

Node head = new Node(0);

Node p = head;

Node p1 = l1.head;

Node p2 = l2.head;

while(p1 != null && p2 != null){

if(p1.data < p2.data){

p.next = p1;

p1 = p1.next;

}else{

p.next = p2;

p2 = p2.next;

}

p = p.next;

}

if(p1 != null){

p.next = p1;

}

if(p2!=null){

p.next = p2;

}

head = head.next;

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote