lintcode 170 旋轉鍊錶

2021-08-19 18:05:02 字數 744 閱讀 7803

給定乙個鍊錶,旋轉鍊錶,使得每個節點向右移動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...