力扣(LeetCode)反轉鍊錶 個人題解

2022-09-03 09:18:09 字數 616 閱讀 6880

反轉乙個單鏈表。

示例:

輸入: 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,按照原鍊錶的順序迴圈下去

**如下:

class

solution

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...