Expand|Select|Wrap|Line Numbers
- public class LinkedList<T>{
- private Node head;
- public LinkedList()
- {
- head = null;
- }
- public boolean isEmpty()
- {
- return (head==null);
- }
- public void addToHead(T val )
- {
- Node n = new Node(val);
- n.next = head;
- head = n;
- }
- public T getHeadData(){
- if(head == null){
- throw new RuntimeException("attempt to get data from an empty list !");
- }
- else{
- return head.data;
- }
- }
- public void deleteHead(){
- if(head == null){
- throw new RuntimeException("Deleting from an empty list !");
- }else{
- head= head.next;
- }
- }
- public void addToTail(T val)//show no result
- {
- Node n = new Node (val);
- if(head==null)
- head = n;
- else{
- Node curr = head;
- curr = curr.next;
- curr.next = n;
- addToTail(val);
- }
- }//end addtail
- public void delete(T val){//does not return a result (shows no errors)
- Node curr=null;
- if(head !=null){
- if(head.data==val)
- head = head.next;
- else{
- curr = head;
- curr = curr.next;
- delete(curr.data);
- }
- }
- }
- public void insertSorted(T val){
- Node y = new Node(val);
- if(head==null || val < head.data)//operator < cannot be applied to T, T
- head = y;
- else
- head = head.next;
- insertSorted(head.data);
- }
- public boolean contains(T val)
- {
- if(head!=null){
- if(head.data==val)
- return true;
- head = head.next;
- return contains(val);
- }
- return false;
- }//end of contains
- public String toString(){
- String str = " ";
- Node curr = head;
- while(curr !=null){
- str = str + curr.data +" ";
- curr = curr.next;
- }
- return str + "\n";
- }
- public class Node{
- public T data;
- public Node next;
- public Node(T val){
- data = val;
- next = null;
- }
- }//End of node class
- }//Linked List
- class TestLinkedList{
- public static void main(String[] args){
- LinkedList<Integer>ST = new LinkedList<Integer>();
- for(int i = 0; i < 10; i++){ //correctly load linkedlist
- ST.addToHead(i);
- }
- System.out.println(ST.toString()); //print list
- boolean y = ST.contains(12);
- System.out.println(y);
- ST.addToTail(200); //returns nothing
- System.out.println(ST.toString());
- ST.delete(5);
- System.out.println(ST.toString());
- insertSorted(11);
- System.out.println(ST.toString());
- }//end main
- }//end class
- Need help.
- public void addToTail(T val)
- public void delete(T val)
- public void insertSorted(T val)
- I need help to get the above functions to work recursively. I am able to get them work iteratively, no problem. When I try to write the functions re cursively, I am not able to see any results. I am at a lost understanding why.