力扣 206 反轉鍊錶

2022-03-29 09:59:21 字數 988 閱讀 2299

反轉乙個單鏈表。

示例:

輸入: 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

solution

21return

pre;22}

23 }

力扣測試時間為:0ms, 空間為39.8mb

時間複雜度:因為只掃瞄了一遍鍊錶,所以時間複雜度為o(n)

空間複雜度為o(1)

遞迴,先遞迴到最後乙個結點,返回到上一層後讓head.next.next指向head,讓乙個往後指的指標往回指,每次都返回鍊錶的最後的那個節點

1

class

solution 8//

獲取到尾節點,即將來的頭結點

9 listnode p =reverselist(head.next);

10//

讓head的下個結點的指標指向自己

11 head.next.next =head;

12//

讓head.next為空

13 head.next = null;14

//返回反轉鍊錶後的頭指標

15return

p;16

}17 }

力扣測試時間為:0ms, 空間為39.8mb

時間複雜度:需要遍歷兩次鍊錶,一次是不斷遞迴直到最後乙個結點,另一次是從最後乙個結點往前反轉,所以時間複雜度為o(n)

空間複雜度:遞迴的深度為o(n),所以空間複雜度為o(n)

力扣 206反轉鍊錶

package leetcode真題分門別類.鍊錶 author bennyrhys date 2020 05 29 11 42 思路 鍊錶翻轉,直接改變指標指向 儲存狀態需要建立三個指標 pre前 cur當前 next下乙個 複雜度 時間o n 空間o 1 注意while處正好判斷cur是否為空的...

python力扣206反轉鍊錶

原題鏈結 1.雙指標反轉 非迭代法的主要思想就是設定兩個指標,指標每向前移動一下就反轉一下 class solution def reverselist self,head listnode listnode pre none cur head while cur 當cur null時迴圈結束 tm...

力扣題解 206th 反轉鍊錶

definition for singly linked list.public class listnode class solution return previous 遞迴遞迴的寫法根據三指標迭代法修改而來,遞迴迴圈的變數是三指標中的next指標 遞迴看起來是正著走過去的與遍歷相同,但遞迴是反...