亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

劍指offer系列——?jiǎng)χ?Offer 06. 從尾到頭打印鏈表(C語(yǔ)言)

DevTTL / 2911人閱讀

摘要:導(dǎo)航小助手劍指從尾到頭打印鏈表題目詳情解題思路源代碼總結(jié)劍指從尾到頭打印鏈表題目詳情輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過來返回每個(gè)節(jié)點(diǎn)的值用數(shù)組返回。時(shí)間復(fù)雜度方法先反轉(zhuǎn)鏈表并求長(zhǎng)度,在將反轉(zhuǎn)后的鏈表數(shù)據(jù)拷貝至數(shù)組中。

??前面的話??

大家好!博主開辟了一個(gè)新的專欄——?jiǎng)χ竜ffer,我要開始刷題了!這個(gè)專欄會(huì)介紹《劍指offer》書上所有的面試編程題。并且會(huì)分享一些我的刷題心得。由于博主水平有限,如有錯(cuò)誤,歡迎指正,如果有更好的解題思路和算法可以分享給博主哦!一起加油!一起努力!

?博客主頁(yè):未見花聞的博客主頁(yè)
?歡迎關(guān)注?點(diǎn)贊?收藏??留言?
?本文由未見花聞原創(chuàng),CSDN首發(fā)!
?首發(fā)時(shí)間:?2021年9月3日?
??堅(jiān)持和努力一定能換來詩(shī)與遠(yuǎn)方!
?參考書籍:?《劍指offer第1版》,?《劍指offer第2版》
?參考在線編程網(wǎng)站:???途W(wǎng)?力扣
?作者水平很有限,如果發(fā)現(xiàn)錯(cuò)誤,一定要及時(shí)告知作者哦!感謝感謝!
博主的碼云gitee,平常博主寫的程序代碼都在里面。


??劍指 Offer 06. 從尾到頭打印鏈表??

?題目詳情

輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過來返回每個(gè)節(jié)點(diǎn)的值(用數(shù)組返回)。

示例:

輸入:head = [1,3,2]輸出:[2,3,1]

限制:

0 <= 鏈表長(zhǎng)度 <= 10000

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/

?解題思路

方法1: 先求鏈表長(zhǎng)度,然后再將鏈表中的元素逆序存入數(shù)組中。

時(shí)間復(fù)雜度: O(N)

方法2: 先反轉(zhuǎn)鏈表并求長(zhǎng)度,在將反轉(zhuǎn)后的鏈表數(shù)據(jù)拷貝至數(shù)組中。
反轉(zhuǎn)鏈表方法見劍指offer系列——?jiǎng)χ?Offer 24. 反轉(zhuǎn)鏈表(C語(yǔ)言)

時(shí)間復(fù)雜度: O(N)

?源代碼

編程語(yǔ)言:C語(yǔ)言
在線編程平臺(tái):力扣

//方法1/** * Definition for singly-linked list. * struct ListNode { *     int val; *     struct ListNode *next; * }; *//** * Note: The returned array must be malloced, assume caller calls free(). */int* reversePrint(struct ListNode* head, int* returnSize){    int cnt = 0;    struct ListNode* cur = NULL;    cur = head;    while(cur)    {        cnt++;        cur = cur->next;//求鏈表中元素個(gè)數(shù)    }    int* arr = (int*)malloc(sizeof(int)*cnt);//分配給數(shù)組合適的空間    *returnSize = cnt;    cur = head;    while(cur)    {        *(arr + cnt - 1) = cur->val;//將鏈表的元素逆向存入數(shù)組中        cur = cur->next;        cnt--;    }    return arr;}
//方法2int* reversePrint(struct ListNode* head, int* returnSize){    if (head == NULL)    {        *returnSize = 0;        return NULL;    }    int cnt = 0;//記錄元素個(gè)數(shù)    struct ListNode* cur = head;    struct ListNode* next = NULL;    struct ListNode* tail = NULL;    while (cur)    {        next = cur->next;        cur->next = tail;        tail = cur;        cur = next;        cnt++;    }//反轉(zhuǎn)鏈表并求鏈表長(zhǎng)度    int* arr = (int*)malloc(sizeof(int)*cnt);    *returnSize = cnt;    cur = tail;    int i = 0;    for (i = 0; i < cnt; i++)    {        arr[i] = cur->val;        cur = cur->next;    }    return arr;}

?總結(jié)

對(duì)于鏈表的逆序打印,可以先統(tǒng)計(jì)鏈表元素個(gè)數(shù),然后根據(jù)鏈表元素個(gè)數(shù)創(chuàng)建合適大小的數(shù)組,最后再將鏈表中的元素逆序存入數(shù)組中!還可以先進(jìn)行反轉(zhuǎn)鏈表并求出鏈表元素個(gè)數(shù),同理根據(jù)鏈表大小為數(shù)組申請(qǐng)空間,最后將反轉(zhuǎn)鏈表中的元素存入數(shù)組中!

覺得文章寫得不錯(cuò)的老鐵們,點(diǎn)贊評(píng)論關(guān)注走一波!謝謝啦!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/119110.html

相關(guān)文章

  • #yyds干貨盤點(diǎn)#劍指 Offer 06. 從尾到頭打印鏈表

    摘要:題目輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過來返回每個(gè)節(jié)點(diǎn)的值用數(shù)組返回。 題目輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過來返回每個(gè)節(jié)點(diǎn)的值(用數(shù)組返回)。示例 1:輸入:head = [1,3,2]輸出:[2,3,1]限制:0

    SQC 評(píng)論0 收藏0
  • 劍指offer】3.從尾到頭打印鏈表

    摘要:題目描述輸入一個(gè)鏈表,按鏈表值從尾到頭的順序返回一個(gè)。最后別忘了,從尾到頭遍歷鏈表,不要忘了將你的結(jié)果進(jìn)行翻轉(zhuǎn)。 題目描述 輸入一個(gè)鏈表,按鏈表值從尾到頭的順序返回一個(gè)ArrayList。 分析 要了解鏈表的數(shù)據(jù)結(jié)構(gòu): val屬性存儲(chǔ)當(dāng)前的值,next屬性存儲(chǔ)下一個(gè)節(jié)點(diǎn)的引用。 要遍歷鏈表就是不斷找到當(dāng)前節(jié)點(diǎn)的next節(jié)點(diǎn),當(dāng)next節(jié)點(diǎn)是null時(shí),說明是最后一個(gè)節(jié)點(diǎn),停止遍歷。 最...

    graf 評(píng)論0 收藏0
  • 劍指offer【6】:從尾到頭打印鏈表

    題目 輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過來打印出每個(gè)節(jié)點(diǎn)的值。 解題思路 一、棧 第一個(gè)遍歷的節(jié)點(diǎn)最后一個(gè)輸出,而最后一個(gè)比遍歷到的節(jié)點(diǎn)第一個(gè)輸出(后進(jìn)先) public static ArrayList printListFromTailToHead(ListNode listNode){ ArrayList list = new ArrayList(); ...

    Kahn 評(píng)論0 收藏0
  • PHPer也刷《劍指Offer》之鏈表

    摘要:劍指中鏈表相關(guān)題目俗話說光說不練假把式,既然學(xué)習(xí)了鏈表的基礎(chǔ)概念和基本操作那我們一定要找些題目鞏固下,下面來看劍指中的相關(guān)題目。題目分析合并兩個(gè)排序的鏈表,需要分別比較兩個(gè)鏈表的每個(gè)值,然后改變指針。 溫故知新 鏈表由一個(gè)一個(gè)的作為節(jié)點(diǎn)的對(duì)象構(gòu)成的,每一個(gè)節(jié)點(diǎn)都有指向下一個(gè)節(jié)點(diǎn)的指針,最后一個(gè)節(jié)點(diǎn)的指針域指向空。每個(gè)節(jié)點(diǎn)可以存儲(chǔ)任何數(shù)據(jù)類型。 根據(jù)類型可以分為單鏈表、雙鏈表、環(huán)形鏈表、...

    daydream 評(píng)論0 收藏0
  • 利用PHP實(shí)現(xiàn)《劍指 offer》之鏈表(數(shù)據(jù)結(jié)構(gòu)與算法實(shí)戰(zhàn) )

    摘要:一定要認(rèn)真看分析注釋題目要求題目描述輸入一個(gè)鏈表,從尾到頭打印鏈表每個(gè)節(jié)點(diǎn)的值。分析因?yàn)殒湵碇挥兄喇?dāng)前結(jié)點(diǎn)才能知道下一結(jié)點(diǎn),所以不可能直接從后往前打印。 一定要認(rèn)真看 分析 | 注釋 | 題目要求 Question 1 題目描述:輸入一個(gè)鏈表,從尾到頭打印鏈表每個(gè)節(jié)點(diǎn)的值。 分析:因?yàn)殒湵碇挥兄喇?dāng)前結(jié)點(diǎn)才能知道下一結(jié)點(diǎn),所以不可能直接從后往前打印。這種逆序的算法(策略)我們常用棧這...

    hiYoHoo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<