1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Flura [38]
3 years ago
11

Write a removeDuplicates() method for the LinkedList class we saw in lecture. The method will remove all duplicate elements from

the LinkedList by removing the second and subsequent elements. If there is only one copy of an element, it is not removed. The list size should shrink accordingly based on the number of duplicates removed.
Computers and Technology
1 answer:
oksano4ka [1.4K]3 years ago
6 0

Answer:

removeDuplicates() function:-

//removeDuplicates() function removes duplicate elements form linked list.

   void removeDuplicates() {

     

       //declare 3 ListNode pointers ptr1,ptr2 and duplicate.

       //initially, all points to null.

       ListNode ptr1 = null, ptr2 = null, duplicate = null;

       

       //make ptr1 equals to head.

       ptr1 = head;

        //run while loop till ptr1 points to second last node.

       //pick elements one by one..

       while (ptr1 != null && ptr1.next != null)

       {

               // make ptr2 equals to ptr1.

               //or make ptr2 points to same node as ptr1.

           ptr2 = ptr1;

           //run second while loop to compare all elements with above selected element(ptr1->val).

           while (ptr2.next != null)

           {

              //if element pointed by ptr1 is same as element pointed by ptr2.next.

               //Then, we have found duplicate element.

               //Now , we have to remove this duplicate element.

               if (ptr1.val == ptr2.next.val)

               {

                  //make duplicate pointer points to node where ptr2.next points(duplicate node).

                       duplicate = ptr2.next;

                       //change links to remove duplicate node from linked list.

                       //make ptr2.next points to duplicate.next.

                   ptr2.next = duplicate.next;

               }

               

             //if element pointed by ptr1 is different from element pointed by ptr2.next.

               //then it is not duplicate element.

               //So, move ptr2 = ptr2.next.

               else

               {

                   ptr2 = ptr2.next;

               }

           }

           

           //move ptr1 = ptr1.next, after check duplicate elements for first node.

           //Now, we check duplicacy for second node and so on.

           //so, move ptr1  by one node.

           ptr1 = ptr1.next;

       }

   }

Explanation:

Complete Code:-

//Create Linked List Class.

class LinkedList {

       //Create head pointer.

       static ListNode head;

       //define structure of ListNode.

       //it has int val(data) and pointer to ListNode i.e, next.

   static class ListNode {

       int val;

       ListNode next;

       //constructor to  create and initialize a node.

       ListNode(int d) {

               val = d;

           next = null;

       }

   }

//removeDuplicates() function removes duplicate elements form linked list.

   void removeDuplicates() {

       

       //declare 3 ListNode pointers ptr1,ptr2 and duplicate.

       //initially, all points to null.

       ListNode ptr1 = null, ptr2 = null, duplicate = null;

       

       //make ptr1 equals to head.

       ptr1 = head;

       

       

       //run while loop till ptr1 points to second last node.

       //pick elements one by one..

       while (ptr1 != null && ptr1.next != null)

       {

               // make ptr2 equals to ptr1.

               //or make ptr2 points to same node as ptr1.

           ptr2 = ptr1;

           //run second while loop to compare all elements with above selected element(ptr1->val).

           while (ptr2.next != null)

           {

              //if element pointed by ptr1 is same as element pointed by ptr2.next.

               //Then, we have found duplicate element.

               //Now , we have to remove this duplicate element.

               if (ptr1.val == ptr2.next.val)

               {

                  //make duplicate pointer points to node where ptr2.next points(duplicate node).

                       duplicate = ptr2.next;

                       

                       //change links to remove duplicate node from linked list.

                       //make ptr2.next points to duplicate.next.

                   ptr2.next = duplicate.next;

               }

               

             //if element pointed by ptr1 is different from element pointed by ptr2.next.

               //then it is not duplicate element.

               //So, move ptr2 = ptr2.next.

               else

               {

                   ptr2 = ptr2.next;

               }

           }

           

           //move ptr1 = ptr1.next, after check duplicate elements for first node.

           //Now, we check duplicacy for second node and so on.

           //so, move ptr1  by one node.

           ptr1 = ptr1.next;

       }

   }

   //display() function prints linked list.

   void display(ListNode node)

   {

       //run while loop till last node.

       while (node != null)

       {

               //print node value of current node.

           System.out.print(node.val + " ");

           

           //move node pointer by one node.

           node = node.next;

       }

   }

   public static void main(String[] args) {

       

       //Create object of Linked List class.

       LinkedList list = new LinkedList();

       

       //first we create nodes and connect them to form a linked list.

       //Create Linked List 1-> 2-> 3-> 2-> 4-> 2-> 5-> 2.

       

       //Create a Node having node data = 1 and assign head pointer to it.

       //As head is listNode of static type. so, we call head pointer using class Name instead of object name.

       LinkedList.head = new ListNode(1);

       

       //Create a Node having node data = 2 and assign head.next to it.

       LinkedList.head.next = new ListNode(2);

       LinkedList.head.next.next = new ListNode(3);

       LinkedList.head.next.next.next = new ListNode(2);

       LinkedList.head.next.next.next.next = new ListNode(4);

       LinkedList.head.next.next.next.next.next = new ListNode(2);

       LinkedList.head.next.next.next.next.next.next = new ListNode(5);

       LinkedList.head.next.next.next.next.next.next.next = new ListNode(2);

       //display linked list before Removing duplicates.

       System.out.println("Linked List before removing duplicates : ");

       list.display(head);

       //call removeDuplicates() function to remove duplicates from linked list.

       list.removeDuplicates();

       System.out.println("")

       //display linked list after Removing duplicates.

       System.out.println("Linked List after removing duplicates :  ");

       list.display(head);

   }

}

Output:-

You might be interested in
how do i create a program in little man computer that takes 2 numbers, divides them and then outputs the div and mod?
Sever21 [200]

Answer:

The program then displays to the screen (OUT) the result of taking the remainder (modulus) of dividing the second number into the first number. For example, if the first number entered was 14 and the second number entered was 5 then the program would display 4.

Explanation:

Hope this helps!!!

7 0
3 years ago
What is UTF-8 and why was it created?
Yuki888 [10]

Answer: UTF-8 (Unicode transformation format)  is a technique that is capable of producing any character in Unicode standard.

Explanation: UTF-8 is supporting technique that helps in changing any block of bits of any language.It is used for converting any code into the unicode characters.It was created because this coding technique that supports various languages and is also replacing the ASCII code. UTF-8 code is highly compatible with the ASCII codes and has better properties than it.

5 0
3 years ago
State one device that may be found on a computer monitor that is used for video conferencing
torisob [31]

Answer: Camera and Microphone

Explanation:

This can be  embedded on to the monitor.m

Camera for Visual

Microphone for radio.

5 0
2 years ago
How much data can a flash drive store?​
zzz [600]

Answer:

depends on which flash drive

Explanation:

32GB-1000 photos

6 0
3 years ago
Read 2 more answers
Tom's using Google Ads to promote his bicycle store. He's created an Android App and needs to measure how effectively the curren
m_a_m_a [10]

Answer:

Option B is correct.

Explanation:

The mobile app conversion tracking will help Tom to see how many people who see the ads, actually install the app and use it. It will also track how many people use the app to make purchases or perform any other action.

It's a useful way to keep track on the success of the ad campaign.

7 0
4 years ago
Other questions:
  • If a domain consists of dcs that are running versions of windows server earlir than windows server 2008, what replication method
    12·1 answer
  • How do Filament 3D printers build a model?
    8·1 answer
  • Write a fragment of code that reads in integers from standard input, until end-of-file and sends their (floating point) average
    14·1 answer
  • Organizational Units are typically configured to: prevent companies from sharing resources. ensure that the system password is t
    13·1 answer
  • Would a hurricane form if the humidity is really high and the breeze is very low
    11·1 answer
  • You are troubleshooting a mobile device that will not pair with a Bluetooth headset. The device was functioning properly with th
    7·1 answer
  • A user from the sales department calls to report that he is experiencing problems connecting to the sales file server. All users
    15·1 answer
  • C. What is the computer memory? What is the role of the memory in a computer?​
    14·1 answer
  • How do you import an SVG file?
    12·1 answer
  • Why vechiles Tyres are black in colour?​
    14·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!