国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

(鏈表) 劍指 Offer 24. 反轉(zhuǎn)鏈表 ——【Leetcode每日一題】

這篇具有很好參考價(jià)值的文章主要介紹了(鏈表) 劍指 Offer 24. 反轉(zhuǎn)鏈表 ——【Leetcode每日一題】。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

?劍指 Offer 24. 反轉(zhuǎn)鏈表

難度:簡(jiǎn)單

定義一個(gè)函數(shù),輸入一個(gè)鏈表的頭節(jié)點(diǎn),反轉(zhuǎn)該鏈表并輸出反轉(zhuǎn)后鏈表的頭節(jié)點(diǎn)。

示例:

輸入: 1->2->3->4->5->NULL
輸出: 5->4->3->2->1->NULL

限制

  • 0 <= 節(jié)點(diǎn)個(gè)數(shù) <= 5000

注意:本題與 206. 反轉(zhuǎn)鏈表 相同。

??思路:

法一:遞歸

可以將本問題分解成子問題:

  • 1->(剩余部分的反轉(zhuǎn)),而1 始終指向 2,即1->2
  • 所以第一層遞歸的結(jié)果以為: 5->4->3->2 <-1
  • 每一層以此類推。

法二:迭代

  • 頭插法。

??代碼:(C++、Java)

法一:遞歸
C++

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(head == nullptr || head->next == nullptr) return head;
        ListNode* temp = reverseList(head->next);
        head->next->next = head;
        head->next = nullptr;
        return temp;
    }
};

Java

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        if(head == null || head.next == null) return head;
        ListNode temp = reverseList(head.next);
        head.next.next = head;
        head.next = null;
        return temp;
    }
}

法二:迭代
C++

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* h0 = new ListNode(-1);
        ListNode* temp = head;
        while(head != nullptr){
            head = head->next;
            temp->next = h0->next;
            h0->next = temp;
            temp = head;
        }
        head = h0->next;
        delete(h0);
        return head;
    }
};

Java

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode h0 = new ListNode(-1);
        ListNode temp = head;
        while(head != null){
            head = head.next;
            temp.next = h0.next;
            h0.next = temp;
            temp = head;
        }
        head = h0.next;
        return head;
    }
}
?? 運(yùn)行結(jié)果:

(鏈表) 劍指 Offer 24. 反轉(zhuǎn)鏈表 ——【Leetcode每日一題】,LeetCode,鏈表,leetcode,數(shù)據(jù)結(jié)構(gòu)

?? 復(fù)雜度分析:
  • 時(shí)間復(fù)雜度 O ( n ) O(n) O(n),其中 n 為鏈表的長(zhǎng)度。
  • 空間復(fù)雜度 O ( 1 ) O(1) O(1),遞歸空間復(fù)雜度為 O ( n ) O(n) O(n),主要取決于遞歸調(diào)用的??臻g,最多為 n 層。而迭代只需要常數(shù)級(jí)額外空間,即為 O ( 1 ) O(1) O(1)

題目來源:力扣。

放棄一件事很容易,每天能堅(jiān)持一件事一定很酷,一起每日一題吧!
關(guān)注我LeetCode主頁(yè) / CSDN—力扣專欄,每日更新!文章來源地址http://www.zghlxwxcb.cn/news/detail-607293.html

注: 如有不足,歡迎指正!

到了這里,關(guān)于(鏈表) 劍指 Offer 24. 反轉(zhuǎn)鏈表 ——【Leetcode每日一題】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Leetcode-每日一題【劍指 Offer 29. 順時(shí)針打印矩陣】

    Leetcode-每日一題【劍指 Offer 29. 順時(shí)針打印矩陣】

    輸入一個(gè)矩陣,按照從外向里以順時(shí)針的順序依次打印出每一個(gè)數(shù)字。 示例 1: 輸入: matrix = [[1,2,3],[4,5,6],[7,8,9]] 輸出: [1,2,3,6,9,8,7,4,5] 示例 2: 輸入: matrix =?[[1,2,3,4],[5,6,7,8],[9,10,11,12]] 輸出: [1,2,3,4,8,12,11,10,9,5,6,7] 限制: 0 = matrix.length = 100 0 = matrix[i].length?= 100 1.題目要求

    2024年02月13日
    瀏覽(28)
  • Leetcode-每日一題【劍指 Offer 16. 數(shù)值的整數(shù)次方】

    Leetcode-每日一題【劍指 Offer 16. 數(shù)值的整數(shù)次方】

    實(shí)現(xiàn)?pow(x,?n)?,即計(jì)算 x 的 n 次冪函數(shù)(即,xn)。不得使用庫(kù)函數(shù),同時(shí)不需要考慮大數(shù)問題。 示例 1: 輸入: x = 2.00000, n = 10 輸出: 1024.00000 示例 2: 輸入: x = 2.10000, n = 3 輸出: 9.26100 示例 3: 輸入: x = 2.00000, n = -2 輸出: 0.25000 解釋: 2-2 = 1/22 = 1/4 = 0.25 提示: -10

    2024年02月13日
    瀏覽(22)
  • Leetcode-每日一題【劍指 Offer 26. 樹的子結(jié)構(gòu)】

    Leetcode-每日一題【劍指 Offer 26. 樹的子結(jié)構(gòu)】

    輸入兩棵二叉樹A和B,判斷B是不是A的子結(jié)構(gòu)。(約定空樹不是任意一個(gè)樹的子結(jié)構(gòu)) B是A的子結(jié)構(gòu), 即 A中有出現(xiàn)和B相同的結(jié)構(gòu)和節(jié)點(diǎn)值。 例如: 給定的樹 A: ? ? ?3 ? ? / ? ?4 ? 5 ? / ?1 ? 2 給定的樹 B: ? ?4? ? / ?1 返回 true,因?yàn)?B 與 A 的一個(gè)子樹擁有相同的結(jié)構(gòu)和節(jié)點(diǎn)

    2024年02月13日
    瀏覽(23)
  • (字符串 ) 劍指 Offer 05. 替換空格 ——【Leetcode每日一題】

    (字符串 ) 劍指 Offer 05. 替換空格 ——【Leetcode每日一題】

    難度:簡(jiǎn)單 請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),把字符串 s 中的每個(gè) 空格 替換成 “ %20 ”。 示例 1: 輸入:s = “We are happy.” 輸出:“We%20are%20happy.” 限制 : 0 = s 的長(zhǎng)度 = 10000 ??思路:雙指針法 如果想把這道題目做到 極致 ,就不要只用額外的輔助空間了! 首先擴(kuò)充數(shù)組到每個(gè)空格替換

    2024年02月08日
    瀏覽(30)
  • Leetcode-每日一題【劍指 Offer 27. 二叉樹的鏡像】

    Leetcode-每日一題【劍指 Offer 27. 二叉樹的鏡像】

    請(qǐng)完成一個(gè)函數(shù),輸入一個(gè)二叉樹,該函數(shù)輸出它的鏡像。 例如輸入: ? ? ?4 ? ?/ ? ? 2 ? ? 7 ?/ ? / 1 ? 3 6 ? 9 鏡像輸出: ? ? ?4 ? ?/ ? ? 7 ? ? 2 ?/ ? / 9 ? 6 3? ?1 示例 1: 輸入: root = [4,2,7,1,3,6,9] 輸出: [4,7,2,9,6,3,1] 限制: 0 = 節(jié)點(diǎn)個(gè)數(shù) = 1000 1.題目要求我們?cè)O(shè)

    2024年02月13日
    瀏覽(29)
  • Leetcode-每日一題【劍指 Offer 11. 旋轉(zhuǎn)數(shù)組的最小數(shù)字】

    Leetcode-每日一題【劍指 Offer 11. 旋轉(zhuǎn)數(shù)組的最小數(shù)字】

    把一個(gè)數(shù)組最開始的若干個(gè)元素搬到數(shù)組的末尾,我們稱之為數(shù)組的旋轉(zhuǎn)。 給你一個(gè)可能存在?重復(fù)?元素值的數(shù)組?numbers?,它原來是一個(gè)升序排列的數(shù)組,并按上述情形進(jìn)行了一次旋轉(zhuǎn)。請(qǐng)返回旋轉(zhuǎn)數(shù)組的最小元素。例如,數(shù)組?[3,4,5,1,2] 為 [1,2,3,4,5] 的一次旋轉(zhuǎn),該數(shù)組的

    2024年02月14日
    瀏覽(21)
  • Leetcode-每日一題【206.反轉(zhuǎn)鏈表】

    Leetcode-每日一題【206.反轉(zhuǎn)鏈表】

    給你單鏈表的頭節(jié)點(diǎn)? head ?,請(qǐng)你反轉(zhuǎn)鏈表,并返回反轉(zhuǎn)后的鏈表。 示例 1: 輸入: head = [1,2,3,4,5] 輸出: [5,4,3,2,1] 示例 2: 輸入:head = [1,2] 輸出:[2,1] 示例 3: 輸入:head = [] 輸出:[] 提示: 鏈表中節(jié)點(diǎn)的數(shù)目范圍是 [0, 5000] -5000 = Node.val = 5000 ? 1.我們遍歷鏈表,首先設(shè)置

    2024年02月12日
    瀏覽(18)
  • (搜索) 劍指 Offer 12. 矩陣中的路徑 ——【Leetcode每日一題】

    (搜索) 劍指 Offer 12. 矩陣中的路徑 ——【Leetcode每日一題】

    難度:中等 給定一個(gè) m * n 二維字符網(wǎng)格 board 和一個(gè)字符串單詞 word 。如果 word 存在于網(wǎng)格中,返回 true ;否則,返回 false 。 單詞必須按照字母順序,通過相鄰的單元格內(nèi)的字母構(gòu)成,其中“相鄰”單元格是那些水平相鄰或垂直相鄰的單元格。同一個(gè)單元格內(nèi)的字母不允許

    2024年02月12日
    瀏覽(28)
  • Leetcode-每日一題【劍指 Offer 20. 表示數(shù)值的字符串】

    Leetcode-每日一題【劍指 Offer 20. 表示數(shù)值的字符串】

    ? 請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù)用來判斷字符串是否表示 數(shù)值 (包括整數(shù)和小數(shù))。 數(shù)值 (按順序)可以分成以下幾個(gè)部分: 若干空格 一個(gè)? 小數(shù) ?或者? 整數(shù) (可選)一個(gè)? \\\'e\\\' ?或? \\\'E\\\' ?,后面跟著一個(gè)? 整數(shù) 若干空格 小數(shù) (按順序)可以分成以下幾個(gè)部分: (可選)一個(gè)符號(hào)

    2024年02月13日
    瀏覽(19)
  • Leetcode-每日一題【劍指 Offer 13. 機(jī)器人的運(yùn)動(dòng)范圍】

    Leetcode-每日一題【劍指 Offer 13. 機(jī)器人的運(yùn)動(dòng)范圍】

    地上有一個(gè)m行n列的方格,從坐標(biāo)? [0,0] ?到坐標(biāo)? [m-1,n-1] ?。一個(gè)機(jī)器人從坐標(biāo)? [0, 0] 的格子開始移動(dòng),它每次可以向左、右、上、下移動(dòng)一格(不能移動(dòng)到方格外),也不能進(jìn)入行坐標(biāo)和列坐標(biāo)的數(shù)位之和大于k的格子。例如,當(dāng)k為18時(shí),機(jī)器人能夠進(jìn)入方格 [35, 37] ,因?yàn)?/p>

    2024年02月13日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包