原文:劍指Offer面試題:15.反轉鏈表

一 題目:反轉鏈表 題目:定義一個函數,輸入一個鏈表的頭結點,反轉該鏈表並輸出反轉后鏈表的頭結點。 鏈表結點定義如下,這里使用的是C 描述: 二 解題思路 . 借助外部空間的解法一 由於題目並沒有要求必須原地反轉,因此可以借助外部空間實現。這里可以將單鏈表儲存為數組,然后按照數組的索引逆序進行反轉。但是,此方式比較浪費空間,而且需要兩次遍歷,效率不占優勢。 依據上面的思路,我們可以寫出以下代碼: ...

2015-08-29 20:32 1 17690 推薦指數:

查看詳情

Offer15反轉鏈表

  題目描述:   輸入一個鏈表反轉鏈表后,輸出新鏈表的表頭。   解題思路:   本題比較簡單,有兩種方法可以實現:(1)三針。使用三個指針,分別指向當前遍歷到的結點、它的前一個結點以及后一個結點。將指針反轉后,三個結點依次前移即可。(2)遞歸方法。同樣可以采用遞歸來實現反轉。將頭結點 ...

Thu Apr 25 05:24:00 CST 2019 0 622
Offer面試題26:復雜鏈表的復制

題目: 請實現函數ComplexListNode* Clone(ComplexListNode* pHead),復制一個復雜鏈表。 在復雜鏈表中,每個結點除了有一個pNext指針指向下一個結點之外,還有一個pSibling指向鏈表中的任意結點或者NULL。 結點的定義 ...

Fri Jul 17 23:03:00 CST 2015 0 5232
Offer面試題:4.從尾到頭打印鏈表

一、題目:從尾到頭打印鏈表 題目:輸入一個鏈表的頭結點,從尾到頭反過來打印出每個結點的值。   到解決這個問題肯定要遍歷鏈表。遍歷的順序是從頭到尾的順序,可輸出的順序卻是從尾到頭。也就是說第一個遍歷到的結點最后一個輸出,而最后一個遍歷到的結點第一個輸出。這就是典型的“后進先出 ...

Wed Aug 19 07:41:00 CST 2015 1 3720
Offer》各面試題總結

目錄 前言 面試題4 二維數組的查找 一維二分法 二維查找法 面試題5:替換空格 偽新建數組法 從后往前法 面試題6:從尾到頭打印鏈表 面試題7:重建二叉樹 題解 ...

Sat Feb 01 08:29:00 CST 2020 0 689
Offer面試題:31.兩個鏈表的第一個公共節點

一、題目:兩個鏈表的第一個公共節點 題目:輸入兩個鏈表,找出它們的第一個公共結點。   鏈表結點定義如下,這里使用C#語言描述: 二、解題思路 2.1 蠻力法   碰到這道題,很多人的第一反應就是蠻力法:在第一鏈表上順序遍歷每個結點,每遍歷到一個結點 ...

Sun Sep 20 08:23:00 CST 2015 1 6685
Offer面試題:25.二叉搜索樹與雙向鏈表

一、題目:二叉搜索樹與雙向鏈表 題目:輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表。要求不能創建任何新的結點,只能調整樹中結點指針的指向。比如輸入下圖中左邊的二叉搜索樹,則輸出轉換之后的排序雙向鏈表。   二叉搜索樹的節點定義如下,這里使用C#語言描述 ...

Wed Sep 09 08:57:00 CST 2015 1 5253
Offer面試題:16.合並兩個排序的鏈表

PS:這也是一道出鏡率極高的面試題,我相信很多童鞋都會很眼熟,就像於千萬人之中遇見不期而遇的人,沒有別的話可說,唯有輕輕地問一聲:“哦,原來你也在這里? ” 一、題目:合並兩個排序的鏈表 題目:輸入兩個遞增排序的鏈表,合並這兩個鏈表並使新鏈表中的結點仍然是按照遞增排序的。例如輸入下圖 ...

Mon Aug 31 04:09:00 CST 2015 0 2952
Offer面試題:12.在O(1)時間刪除鏈表結點

一、題目:在O(1)時間刪除鏈表結點 題目:給定單向鏈表的頭指針和一個結點指針,定義一個函數在O(1)時間刪除該結點。   原文采用的是C/C++,這里采用C#,節點定義如下:   要實現的DeleteNode方法定義如下: 二、解題思路 2.1 ...

Fri Aug 28 08:49:00 CST 2015 2 1748
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM