面試高頻演算法題 單鏈表系列(1) 倒置鍊錶

2021-10-08 17:32:11 字數 1312 閱讀 1187

反轉鍊錶是一道比較基礎的演算法題啦,但是確實面試高頻演算法題,同學前兩天位元組一面就被問到了這個問題,寫篇博文來記錄一下

首先上題目:

思路都寫在注釋裡啦,所以直接上**啦:

var reverselist = function(head) 

return revhead;

};

執行成功截圖:

下面我們來用**的方法具體介紹整個**的實現流程:

初始狀態:

第一次迴圈:

第一次迴圈過後,步驟①:ptemp指向head,步驟②:pcur指向p1,步驟③:ptemp->pnext指向null。

此時得到的prev為:

第二次迴圈:

第二次迴圈過後,步驟①:ptemp指向p1,步驟②:pcur指向p2,步驟③:ptemp->pnext指向head。

此時得到的prev為:

第三次迴圈:

第三次迴圈過後:步驟①:ptemp指向p2,步驟②:pcur指向p3,步驟③:ptemp->pnext指向p1。

此時得到的prev為:

第四次迴圈:

第四次迴圈過後:步驟①:ptemp指向p3,步驟②:pcur指向null,步驟③:ptemp->pnext指向p2。

此時得到的prev為:

至此,單鏈表的逆置完成。

1 單鏈表的倒置輸出

listnode typedef struct lnode lnode 分析 這是一道很有意思的面試題,此題以及此題的變體經常出現在各大公司的面試 筆試中。看到這道題後,第一反應是從頭到尾輸出比較簡單。然後經過分析,這道題有以下幾種解決方法 將鍊錶中節點的指標反轉過來,然後在從頭到尾輸出節點中的值 ...

面試高頻leetcode演算法題

持續更新 def quick rank nums if len nums 1 return nums left,right mid nums 0 for i in nums 1 if i mid else return quick rank left mid quick rank right 給定乙...

單鏈表的base 高頻面試題

鍊錶是有序的列表,但是它在記憶體中是儲存如下 新增 public class singlelinkedlist 定義singlelinkedlist單鏈表 class singlelinkedlistd temp temp.next temp.next heronode 顯示鍊錶 先判斷為空,遍歷後...