example 1:
input: 1->2->3->4->5->null, k = 2example 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
2->0->1->nullinput: 0->1->2->null, k = 4
output:
要點: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 確定移動幾次...