單鏈表反轉

代碼

public class LinkDo {
    int data;
    LinkDo next;

    public LinkDo(int data) {
        this.data = data;
    }

    public int getData() {
        return data;
    }

    public void setData(int data) {
        this.data = data;
    }

    public LinkDo getNext() {
        return next;
    }

    public void setNext(LinkDo next) {
        this.next = next;
    }
}
public class LinkTest {

    //單鏈表反轉
    @Test
    public void a(){
        LinkDo d1 = new LinkDo(1);
        LinkDo d2 = new LinkDo(2);
        LinkDo d3 = new LinkDo(3);
        LinkDo d4 = new LinkDo(4);
        d1.next = d2;
        d2.next = d3;
        d3.next = d4;
        System.out.println(d1.getData());
        System.out.println(d1.next.getData());
        System.out.println(d1.next.next.getData());
        System.out.println(d1.next.next.next.getData());
        System.out.println("-------單鏈表反轉------");
        LinkDo newD = reserveLink(d1);
        System.out.println(newD.getData());
        System.out.println(newD.next.getData());
        System.out.println(newD.next.next.getData());
        System.out.println(newD.next.next.next.getData());
    }

    private LinkDo reserveLink(LinkDo head) {
        if(head == null || head.next==null){
            return head;
        }
        LinkDo newD = reserveLink(head.next);
        head.next.next = head;
        head.next = null;
        return newD;
    }
}

輸出結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章