題目描述:
反轉乙個單鏈表(返回的仍然是鍊錶)
樣例:
輸入:1->2->3->4->5->null
輸出:5->4->3->2->1->null
題解:
**方法一:**迭代(雙指標)
設定兩個相鄰指標,乙個在前,乙個在後,進行反轉
反轉完成後,兩個指標同時後移一位繼續反轉
遍歷一遍就可全部反轉完成
**:
public
static listnode reverselist
(listnode head)
return cur;
}
**方法二:**遞迴
鍊錶指標反轉核心:
一直找尋到最底層head=5的時候能得到返回值5->null。
把底層得到的返回值返回給上一層reverselist(4),進行一系列運算後得到該層的返回值5->4->null,
再把改返回值返回給上一層reverselist(3),進行一系列運算得到該層的返回值5->4->3->null,
以此類推,一層層返回,最終得到整個鍊錶的反轉。
**執行過程**:
;//鍊錶指標反轉
head.next.next = head;
//防止陷入死迴圈,設定等於null時能跳出
head.next = null;
return ter;
}
劍指offer Python反轉單鏈表
輸入乙個鍊錶,反轉鍊錶後,輸出新鍊錶的表頭。coding utf 8 class listnode def init self,x self.val x self.next none class solution 返回listnode defreverselist self,phead write ...
劍指offer之單鏈表的反轉
問題 輸入乙個鍊錶,將其進行反轉。思路 定義三個指標分別指向當前結點,前乙個結點,後乙個結點,然後依次反轉指標指向。具體 如下 c struct listnode int val listnode next listnode int x val x next nullptr class soluti...
劍指Offer16 單鏈表反轉問題
單鏈表反 定義乙個函式,輸入乙個鍊錶的頭結點,反轉該鍊錶並輸出反轉後鍊錶的頭結點。單鏈表的反轉問題較為簡單,毫無疑問採用指標的方式來進行鍊錶反轉 注意 在調整第i個節點之前,為了保證鍊錶不被斷裂 首先需要定義指標記錄,i的前乙個結點的位置。public class code016 private s...