1. 程式人生 > >旋轉鏈表(所有元素往右移) rotate list

旋轉鏈表(所有元素往右移) rotate list

鏈表 color 畫圖 image class 節點 http 就是 思路

[抄題]:

給定一個鏈表,旋轉鏈表,使得每個節點向右移動k個位置,其中k是一個非負數

樣例

給出鏈表1->2->3->4->5->null和k=2

返回4->5->1->2->3->null

[思維問題]:

就是兩條線段的變種,想不到聯系

[一句話思路]:

用線段找到位置n,然後連一下

[輸入量]:空: 正常情況:特大:特小:程序裏處理到的特殊情況:異常情況(不合法不合理的輸入):

[畫圖]:

技術分享圖片

[一刷]:

連接的時候:

head.next = dummy.next;
dummy.next = tail;(錯了)

1->2->3->2->1->null
1

wrong:
2->null
right:
1->1->2->3->2->null
[二刷]:
  1. 因為 head = dummy;往前移動了一位,快指針退出的條件是後一位非空while(head.next != null)
  2. tail = dummy;慢指針一定要初始化為dummy

  3. [總結]:

[復雜度]:Time complexity: O() Space complexity: O()

[英文數據結構,為什麽不用別的數據結構]:

[其他解法]:

[Follow Up]:

[題目變變變]:

旋轉鏈表(所有元素往右移) rotate list