天天看點

劍指offer--輸入一個連結清單,反轉連結清單後,輸對外連結表的所有元素。

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

    ListNode(int val) {
        this.val = val;
    }
}*/
//1.再進行逆序輸出的時候需要先儲存在head的下一節點,避免連結清單因為失去頭結點而發生錯誤   next = head.next;
//2.此時便可以開始進行逆序   将最後一個節點指向向前節點   head.next = pre;
//3.然後将向前節點後移指向頭結點   pre = head;
//4.然後将頭結點指向像一個節點進而實作了逆序   head = next;
public class Solution {
    public ListNode ReverseList(ListNode head) {
        if(head == null){
            return null;
        }
        ListNode pre = null;
        ListNode next = null;
        while(head != null){
            //經典逆序的輸出裡面的連結清單元素
            next = head.next;
            head.next = pre;
            pre = head;
            head = next;
        }
        return pre;
    }
}
           

繼續閱讀