旋轉鏈表(所有元素往右移) rotate list
阿新 • • 發佈:2017-12-31
鏈表 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
[二刷]:
- 因為 head = dummy;往前移動了一位,快指針退出的條件是後一位非空while(head.next != null)
- tail = dummy;慢指針一定要初始化為dummy
[總結]:
[復雜度]:Time complexity: O() Space complexity: O()
[英文數據結構,為什麽不用別的數據結構]:
[其他解法]:
[Follow Up]:
[題目變變變]:
旋轉鏈表(所有元素往右移) rotate list