Java資料結構和演算法(六)—演算法—反轉連結串列

iaiti發表於2020-10-09

陣列的話跟排好隊的學生一樣,第一個假如從0開始報數。讓他們記住自己的數字,那叫到哪個數字就能找到對應的學生了。
而連結串列的話像是沒有排好隊的學生,但是關係是連線在一起的。每個人持有一張卡片,卡片上寫了他指向誰。

結構比較簡單。

public class ListNode {
    int val;
    ListNode next;

    ListNode(int x) {
        val = x;
    }
}

 

 

1 遞迴方式:

public class Solution {
    private static int i = 0;

    public static ListNode reverseList(ListNode head) {
        
        if(head == null || head.next == null){
            return head;
        }

        ListNode reverseNode = reverseList(head.next);
        head.next.next = head;

        head.next = null;
        return reverseNode;
    }


    public static void main(String[] args) {

        ListNode node1 = new ListNode(1);
        ListNode node2 = new ListNode(2);
        ListNode node3 = new ListNode(3);
        // ListNode node4 = new Li

相關文章