Leetcode 206 Reverse Linked List

題目

Reverse a singly linked list.
單鏈表反轉(zhuǎn)

Example:

Input: 1->2->3->4->5->NULL
Output: 5->4->3->2->1->NULL

1.迭代法:

public ListNode reverseList(ListNode head) {
        ListNode newHead = null;
        while(head != null) {
              ListNode next = head.next;
              head.next = newHead;
              newHead = head;
              head = next;
        }
        return newHead;
}
reverseList.png

時間復雜度O(n)

2.遞歸法

private ListNode reverseList2(ListNode head) {
        if (head == null) {
            return null;
        }
        return reverseList(head, null);
    }

    private ListNode reverseList(ListNode head, ListNode newHead) {
        if (head == null && newHead != null) {
            return newHead;
        }
        ListNode next = head.next;
        head.next = newHead;
        return reverseList(next, head);
    }

時間復雜度: O(n)

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容