輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。
思路:我們要正確反轉乙個鍊錶,就需要調整鍊錶指標的方向。
如圖所示,要調整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,可儲存...