反轉乙個單鏈表。
示例:
輸入: 1->2->3->4->5->null高階:輸出: 5->4->3->2->1->null
你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?
久違了。由於現實需要,從現在開始撿起來很久沒用的c/c++來編寫**。
這一題之前做過,但是由於使用了較為生疏的語言有些細節沒掌握明白。
思路比較簡單,迭代的做法,假設鍊錶: 1-> 2 -> 3 ->4 -> null
假設curr指標指向1,設定prev指標為null,當curr不為null時,進行迴圈。
1.使用區域性變數 指標tmp 來儲存curr->next的位置 ,此時tmp指向 2
2.設定curr->next 為prev,即 鍊錶變為 null <- 1 -> 2 -> 3 -> 4 -> null
3.設定prev 為 curr, 則此時 prev指向 1,新鍊錶的頭部
4.設定 curr 為 prev, curr指向2,按照原鍊錶的順序迴圈下去
**如下:
classsolution
return
prev;
}};
力扣 206反轉鍊錶
package leetcode真題分門別類.鍊錶 author bennyrhys date 2020 05 29 11 42 思路 鍊錶翻轉,直接改變指標指向 儲存狀態需要建立三個指標 pre前 cur當前 next下乙個 複雜度 時間o n 空間o 1 注意while處正好判斷cur是否為空的...
鍊錶反轉(C 力扣)
輸入乙個鍊錶的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 示例 1 輸入 head 1,3,2 輸出 2,3,1 第一種方法,直接反轉 class solution reverse m.begin m.end return m 由上面的 學習到,c 的鍊錶的值,可以直接用val表示,它的值h...
力扣 206 反轉鍊錶
反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 三個指標往後移,當 cur 指標為空時跳出迴圈 1 2 definition for singly linked list.3 public class listnode 7 8 9class soluti...