C語言實現單鏈表的逆序列印(帶頭結點)

來源:互聯網
上載者:User

       我在之前一篇部落格《C語言實現單鏈表(不帶頭結點)的逆序列印》中詳細實現了對一個不帶前端節點的鏈表的逆序列印,整體思路也是非常的簡單,也就是依次遍曆原鏈表,然後把取出的節點用頭插法建立一個新的鏈表,新鏈表就是原鏈表的逆序。這篇部落格我會來實現使用帶頭結點的鏈表實現逆序,思路同上述是一樣的。代碼上傳至  https://github.com/chenyufeng1991/ReverseLinkedList_HeadNode 。

核心代碼如下:

/** *  整體思路就是取出一個節點,然後使用頭插法建立一個新鏈表,新鏈表就是逆序後的。 */Node *ReverseList(Node *pNode){    Node *reverseList;    InitialList(&reverseList);//初始化逆序後的鏈表    Node *pMove;    Node *pInsert;    pInsert = (Node*)malloc(sizeof(Node));    memset(pInsert, 0, sizeof(Node));    pInsert->next = NULL;    pMove = pNode->next;    while (pMove != NULL) {        //頭插法        pInsert->element = pMove->element;        pInsert->next = reverseList->next;        reverseList->next = pInsert;        //插入節點重新分配記憶體        pInsert = (Node*)malloc(sizeof(Node));        memset(pInsert, 0, sizeof(Node));        pInsert->next = NULL;        pMove = pMove->next;    }    printf("%s函數執行,逆序帶前端節點的單鏈表建立成功\n",__FUNCTION__);    PrintList(reverseList);    return reverseList;}


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.