給定乙個鍊錶,旋轉鍊錶,使得每個節點向右移動k個位置,其中k是乙個非負數
給出鍊錶1
->
2->
3->
4->
5->
null和k=
2返回4
->
5->
1->
2->
3->
null
整體思路是先遍歷一遍鍊錶,求出鍊錶的長度size,隨後size和k進行取餘得到k,取餘的目的是得到需要移動的最小距離。然後我們取倒數第k個節點,並且與前乙個節點斷開,然後與頭節點進行連線。
/**
* definition for listnode
* public class listnode
* }*/public
class
solution
listnode fast=head,slow=head;
int count=0,size=0;
for(listnode p=head;p!=null;p=p.next)
k=k%size;
if(k==0)
while(countwhile(fast!=null)
pre.next=null;
prefast.next=head;
head=slow;
return head;
}}
LintCode 170 旋轉鍊錶
給定乙個鍊錶,旋轉鍊錶,使得每個節點向右移動k個位置,其中k是乙個非負數 給出鍊錶1 2 3 4 5 null和k 2 返回4 5 1 2 3 null 分析 首先,遍歷一遍鍊錶得到鍊錶長度len和原鍊錶最後乙個結點pnode。然後k k len,如果k為0,表示移動後為本身,直接返回head即可。...
鍊錶 旋轉鍊錶
力扣原題 definition for singly linked list.public class listnode class solution 計算鍊錶長度 int length 0 listnode cur head while null cur 模擬k輪鍊錶旋轉 for int i 0 ...
LintCode 鍊錶劃分
容易 鍊錶劃分 檢視執行結果 29 通過 給定乙個單鏈表和數值x,劃分鍊錶使得所有小於x的節點排在大於等於x的節點之前。你應該保留兩部分內煉表節點原有的相對順序。您在真實的面試中是否遇到過這個題?yes 樣例 給定鍊錶 1 4 3 2 5 2 null,並且 x 3 返回 1 2 2 4 3 5 n...