劍指offer 刷題記錄 反轉鍊錶

2021-08-26 02:15:58 字數 812 閱讀 8215

輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。

思路:我們要正確反轉乙個鍊錶,就需要調整鍊錶指標的方向。

如圖所示,要調整h,i,j之間的指標方向,現在假設h以前的都已經調整好了。那麼下一步,我們就要把i指向h,那麼這樣就會導致i到j之間的指標斷裂,不能遍歷到j。因此在調整結點i的指標之前,我們除了要知道i結點,還需要i之前的h結點,要把結點i的next指標指向h結點,並且為了防止鍊錶斷開,我們事先還要儲存i的下乙個結點j。那麼我們就要定義3個指標,分別指向當前遍歷到的結點、它的前乙個結點以及後乙個結點。

// 反轉鍊錶

public class solution

} public listnode reverselist(listnode head)

// 定義反轉後的結點,也就是當前結點的後乙個結點

listnode preversehead = null;

// 定義當前結點

listnode pnode = head;

// 定義當前結點的前乙個結點

listnode pprenode = null;

while (pnode != null)

// 調整指標指向前乙個結點

pnode.next = pprenode;

pprenode = pnode;

pnode = pnext;

} return preversehead;

}}

劍指 offer 刷題記錄

任誰都躲不過找工作的問題,好希望能多準備一些時間,奈何時間不等人,每天刷幾道題,並且記錄下來吧 def replacespace s write code here num space 0 new s for i in range len s if i num space 1 for i in ra...

劍指offer刷題記錄

遞迴法 鍊錶的後續遍歷,並用self.k來記錄倒數節點的位置,找到了就返回找到的節點,否則返回none coding utf 8 class listnode def init self,x self.val x self.next none class solution def init self...

劍指offer刷題記錄 綜合

將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 輸入描述 輸入乙個字串,包括數字字母符號,可以為空 輸出描述 如果是合法的數值表達則返回該數字,否則返回0 做這個題目做的真的很煩,最麻煩的就是判斷當前是否越界。可儲存的最大的正數末位為7,可儲存...