//Mason Marnell //Linked List Class public class LinkedList { Node header; public LinkedList() { header = null; } public LinkedList(int data) { header = new Node(); header.value = data; } public void addNode(int data) { Node temp = header; if(header != null) addNode(data,temp); else { header = new Node(); header.value = data; } } public void addNode(int data, Node node) { if(node.next == null) { node.next = new Node(); node = node.next; node.value = data; return; // ends addNode method } // recursively call the next node, this one is not null addNode(data,node.next); } public void deleteFirst() { header = header.next; } public void deleteValue(int data) { deleteValue(data,header); } public void deleteValue(int data, Node node) { if(node.value == data) { node = null; return; } // recursively call the next node, this one is not null deleteValue(data,node.next); // use recursion to find the value and delete it __ similar to addNode //I couldn't get the deleteValue to work so I guess I'll just take //the partial credit for the addNode } public String toString() { String data = ""; if (header != null) { Node temp = header; data = toString(temp); } return data; } public String toString(Node node) { if(node != null) { return node.value + " " + toString(node.next); } return ""; } } //--------------------------------------------------------------------------------------------------------- //LinkedListRunnerClass class public class LinkedListRunnerClass { /** * @param args the command line arguments */ public static void main(String[] args) { int data = 3; LinkedList info = new LinkedList(data); info.addNode(4); info.addNode(7); info.addNode(9); System.out.println(info); info.deleteValue(2); System.out.println(info); } }