Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Set;
- import java.util.HashSet;
- class List {
- Node first;
- List () {
- this.first = null;
- }
- public void insert (Node n) {
- n.next = this.first;
- this.first = n;
- }
- public void print () {
- Node temp = new Node();
- temp.next = this.first;
- while (temp.next != null) {
- System.out.println(temp.next.str);
- temp = temp.next;
- }
- }
- public Node find (String s) {
- Node temp = new Node();
- temp.next = this.first;
- while (temp.next != null) {
- if (temp.next.str == s) return temp.next;
- temp = temp.next;
- }
- return null;
- }
- public void remove (String s) {
- Node temp = new Node();
- temp.next = this.first;
- Boolean run = true;
- while (temp.next != null && run) {
- if (temp.next.str == s) {
- temp.next = temp.next.next;
- run = false;
- }
- temp = temp.next;
- }
- }
- public void removeAll () {
- this.first = new Node ();
- }
- public void removeRepeats () {
- Node run = new Node();
- run.next = this.first;
- Set<String> repeats = new HashSet();
- while (run.next != null) {
- if (repeats.contains(run.next.str)) run.next = run.next.next;
- else {
- repeats.add(run.next.str);
- run = run.next;
- }
- }
- }
- public static List merge (List l1, List l2) {
- List merged = new List ();
- Node temp = l1.first;
- while (temp.next != null) {
- temp = temp.next;
- }
- temp.next = l2.first;
- merged.first = l1.first;
- return merged;
- }
- public static void main (String[] args) {
- /*
- List myList = new List ();
- myList.insert(new Node ("1"));
- myList.insert(new Node ("1"));
- myList.insert(new Node ("2"));
- myList.insert(new Node ("2"));
- myList.insert(new Node ("3"));
- myList.insert(new Node ("4"));
- myList.print();
- System.out.println(myList.find("2").str);
- myList.remove("3");
- myList.print();
- myList.removeRepeats();
- myList.print();
- myList.removeAll();
- myList.print(); */
- List l1 = new List ();
- List l2 = new List ();
- l1.insert(new Node ("1"));
- l1.insert(new Node ("2"));
- l1.insert(new Node ("3"));
- l2.insert(new Node ("4"));
- l2.insert(new Node ("5"));
- l2.insert(new Node ("6"));
- List l3 = List.merge(l1, l2);
- l3.print();
- }
- }
- class Node {
- String str;
- Node next;
- Node () {
- this.next = null;
- }
- Node (String s) {
- this.str = s;
- this.next = null;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement