What is a linked list
1) each element in a linked list is called a node.
2) It is similar to an array, each node in the linked list has the data part and a link to the next node.
3) linked lists have O(1) time complexity for insertion or deletion at the beginning i.e at position 0.
How to implement
-> Java has builtin LinkedList which you can import from the utility library
-> or you can implement your own LinkedList
Built-in LinkedList
LinkedList<String> x = new LinkedList<String>(); // to add elements to the list x.add("1"); // here the first element we added becomes the head x.add("2"); x.add("3"); x.add("4"); x.add("5"); x.remove("5"); // to traverse the linked list Iterator<String> i = x.iterator(); while(i.hasNext()){ System.out.print(i.next()+"->"); }
implementing a LinkedList, my approach:
// LL stands for LinkedList public class LL { public Node head; public LL() { head = null; } public LL(int data) { head = new Node(data); } public void add(int data) { if (head != null) { head.appendToTail(data); } else { head = new Node(data); } } public void printList() { Node dummy = head; while (dummy != null) { System.out.print(dummy.data + "->"); dummy = dummy.next; } System.out.print("null"); } public void delete(int d) { Node newHead = new Node(0); newHead.next = head; Node previous = newHead; Node current = head; while (current != null) { if (current.data == d) { previous.next = current.next; } else { previous = current; } current = current.next; } head = newHead.next; } public class Node { Node next = null; int data; public Node(int data) { this.data = data; } void appendToTail(int d) { Node end = new Node(d); Node n = head; while (n.next != null) { n = n.next; } n.next = end; } } }
Try out these challenges on LinkedList to get a good grasp
Top comments (0)