How to implement circular linked list in java?

前端 未结 2 699
情话喂你
情话喂你 2021-02-06 10:33

I read a book about \"Data structures and algorithms\" in which there is assignment which asks me to implement a circular linked list. This is a learning exercise and my code ma

2条回答
  •  刺人心
    刺人心 (楼主)
    2021-02-06 11:24

    Add last.next = first before return temp in your delete() function:

    public Link delete() {
        if(first.next == null) 
            last = null;
        Link temp = first;
        first = first.next;
        if(last != null)
            last.next = first
        return temp;
    } 
    

    Updated:

    I cannot find a scenario which satisfy first.next == null, and we should take into consideration calling delete() on an empty list.

    public Link delete() {
        Link temp = first;
        if(first == null){
            ;  // or you can throw some exception as a warning
        }
        else if(first==last){  // only one element
            first = null; // reset to initial state
            last = null;
        }
        else{
            first = first.next;
            last.next = first;
        }
        return temp;
    } 
    

提交回复
热议问题