鍊錶向右移動

2021-10-06 04:55:52 字數 1530 閱讀 6963

example 1:

input: 1->2->3->4->5->null, k = 2

output: 4->5->1->2->3->null

explanation:

rotate 1 steps to the right: 5->1->2->3->4->null

rotate 2 steps to the right: 4->5->1->2->3->null

example 2:

input: 0->1->2->null, k = 4

output:

2->0->1->null

explanation:

rotate 1 steps to the right: 2->0->1->null

rotate 2 steps to the right: 1->2->0->null

rotate 3 steps to the right: 0->1->2->null

rotate 4 steps to the right: 2->0->1->null

要點:

1 要注意大於鍊錶長度的情況;

2 快慢指標

public class testright 

}static class node

}public static node right(node head,int n)

node startnode = head;

int len = 0;

while (startnode!=null)

int totalstep = n%len;

node fastnode = head;

//算出轉移後的頭結點

while (totalstep >0)

//要移動的後半部節點 移動一次 慢節點也同時向後移動一次 當移動完成,最後利用慢節點的下乙個節點 也就是要要移動的fast節點=slownode

//使fastnode 即slownode節點變成頭節點,原來fastnode的上乙個節點的nextnode變成null

//此時head節點就變成了1 2 追加到節點3 4的後面

//獲取到fastnode的尾節點

node tempfastnode = null;

//獲取到fastnode的前乙個節點 也就是slownode的尾節點 不移動的那個尾節點

node tempslownode = null;

node slownode = head;

while (fastnode!=null)

tempslownode.next = null;

tempfastnode.next = head;

return slownode;

}}

ios 滑動手勢向右移動

我們來學習滑動手勢。人類最擅長的就是使用工具,手機是我們人類內心世界的延伸,我們渴望擁有上帝的力量。所以我們自己創造了乙個世界,網際網路。我們可以控制裡面所有的一切。現在我們來控制一張是怎麼向右移動的。在現實世界,我們是怎麼控制物體移動呢?是不是要給它施加乙個方向的力,然後它就會朝我們遇到的方向移動...

PAT乙級考試記錄之陣列元素迴圈向右移動

乙個陣列a中存有n 0 個整數,在不允許使用另外陣列的前提下,將每個整數迴圈向右移m 0 個位置,即將a中的資料由 a 0 a 1 a n 1 變換為 a n m a n 1 a 0 a 1 a n m 1 最後m個數迴圈移至最前面的m個位置 如果需要考慮程式移動資料的次數盡量少,要如何設計移動的方...

python 將字串完成特定的向右移動方法

將字串中的元素完成特定的向右移動,引數 字串 移動長度 如 abcdef,移動2,結果 efabcd 原始方法,基本思想 末尾元素移動到開頭,其他的元素依次向後移動.如下 def move lt,n lt list lt 將字串轉換為列表 for i in range n len lt 確定移動幾次...