Could someone explain how this program work? I dont get it what max1= listA.midd
ID: 3592770 • Letter: C
Question
Could someone explain how this program work? I dont get it what max1= listA.middleMax(level+1); max2= listB.middleMax(level+1); refer to
public class LinkedList
{ int n;
ListNode start, rear;
public ListNode middleMax(int level)
{
// Block A
A1 LinkedList listA, listB;
A2 ListNode rear1, start2, max1, max2;
A3 int i, last;
A4 if (n==1) return(start);
// Block B
B1 last=n/2; // beginMax sets last=1, endMax sets last= n-1
B2 rear1= start;
B3 for (i=1; i < last; i++)
B4 rear1= rear1.next;
B5 start2= rear1.next;
B6 rear1.next= null;
B7 listA= new LinkedList(last, start, rear1);
B8 listB= new LinkedList(n-last, start2, rear);
// Block C
C1 max1= listA.middleMax(level+1);
C2 max2= listB.middleMax(level+1);
// Block D
D1 listA.rear.next= listB.start;
D2 if (max1.data > max2.data) return(max1);
D3 else return(max2);
}
E0 public LinkedList(int size, ListNode first, ListNode last)
{ // Block E
E1 n= size;
E2 start= first;
E3
Explanation / Answer
public class LinkedList
{ int n;
ListNode start, rear;
public ListNode middleMax(int level)
{
// Block A
A1 LinkedList listA, listB;
A2 ListNode rear1, start2, max1, max2;
A3 int i, last;
A4 if (n==1) return(start);
// Block B
B1 last=n/2; // beginMax sets last=1, endMax sets last= n-1
B2 rear1= start;
B3 for (i=1; i < last; i++)
B4 rear1= rear1.next;
B5 start2= rear1.next;
B6 rear1.next= null;
B7 listA= new LinkedList(last, start, rear1);
B8 listB= new LinkedList(n-last, start2, rear);
// Block C
C1 max1= listA.middleMax(level+1);
C2 max2= listB.middleMax(level+1);
// Block D
D1 listA.rear.next= listB.start;
D2 if (max1.data > max2.data) return(max1);
D3 else return(max2);
}
E0 public LinkedList(int size, ListNode first, ListNode last)
{ // Block E
E1 n= size;
E2 start= first;
E3