Java反轉鏈表方法

反轉單鏈表的Java實現

前不久在面試時被問到單鏈表反轉的問題,在那之前從未留意過這方面的問題(我懶得真是隨心所欲啊。。。),毫不意外慌了心神只回答了大概思路。。。後來再次做到這道題時,無限感慨了自己的智商。
得出結論:不如回家種田。。。錯,一定要好好記錄回顧,畢竟我記憶還不好。。。
正題——反轉單鏈表的思路:找到尾結點,從尾結點開始逆轉“指針”指向。
以下是算法實現,一個我拜讀了大神們的實現方法的總結,我可長點兒心吧。。。

/*
public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}*/
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head == null||head.next == null){
            return head;
        }
        ListNode newHead = ReverseList(head.next);
        // 將下一個結點的“指針”逆轉,指向當前頭結點
        head.next.next = head;
        // 將當前頭結點指向的結點置空完成反轉
        head.next = null;
        return newHead;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章