小影片程式碼,反轉連結串列的實現思路分析

云豹科技-苏凌霄發表於2024-11-23

小影片程式碼,反轉連結串列的實現思路分析

//思路一:
//使用指標
public ListNode ReverseList(ListNode head) {
    if(head==null || head.next==null){
        return head;
    }

    ListNode pre=null;
    ListNode cur=head;

    while(cur!=null){
        ListNode next = cur.next;

        cur.next = pre;
        pre=cur;
        cur=next;
    }
    return pre;
}
//思路二:
//使用遞迴
public ListNode ReverseList(ListNode head) {
        if(head==null || head.next==null){
            return head;
        }

        //tail 是 head.next 連結串列反轉後的最後一個結點 
        ListNode tail = head.next;
        
        //反轉 head.next 連結串列
        ListNode next = ReverseList(head.next);
        
        head.next = null; //注意:十分重要:head.next 連結串列反轉後,未反轉的只有 head 一個結點
        tail.next = head;
        return next;
    }

以上就是小影片程式碼,反轉連結串列的實現思路分析, 更多內容歡迎關注之後的文章

相關文章