給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 k 個位置,其中 k 是非負數。
示例 1:
輸入:1->2->3->4->5->null, k = 2輸出:4->5->1->2->3->null解釋:向右旋轉 1 步: 5->1->2->3->4->null示例 2:向右旋轉 2 步: 4->5->1->2->3->null
輸入:0->1->2->null, k = 4輸出:2->0->1->null
解釋:向右旋轉 1 步: 2->0->1->null向右旋轉 2 步: 1->2->0->null
向右旋轉 3 步:
0->1->2->null
向右旋轉 4 步:2->0->1->null
**:
/**
* definition for singly-linked list.
* public class listnode
* }*/class solution
//將當前的鏈連成環
cur.next=head;
//指向煉表頭
cur=cur.next;
//偏移後,當前煉表頭向後offset個節點即為尾節點
int offset=count-k%count;
int curoffset=1;
while(curoffset//尾節點的下乙個節點就是新的煉表頭節點
listnode temp=cur.next;
//斷開環形鍊錶
cur.next=null;
return temp;
}}
騰訊精選練習題9 反轉鍊錶
反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?方法一 通過記錄前乙個節點的值並通過指標不斷移動的方式 時間複雜度為o n 假設n是列表的長度,時間複雜度是o n 空間複雜度為o 1 defin...
騰訊精選練習題19 環形鍊錶
給定乙個鍊錶,判斷鍊錶中是否有環。為了表示給定鍊錶中的環,我們使用整數pos來表示鍊錶尾連線到鍊錶中的位置 索引從 0 開始 如果pos是 1,則在該鍊錶中沒有環。示例 1 輸入 head 3,2,0,4 pos 1 輸出 true 解釋 鍊錶中有乙個環,其尾部連線到第二個節點。示例 2 輸入 he...
騰訊精選練習題20 相交鍊錶
編寫乙個程式,找到兩個單鏈表相交的起始節點。如下面的兩個鍊錶 在節點 c1 開始相交。示例 1 輸入 intersectval 8,lista 4,1,8,4,5 listb 5,0,1,8,4,5 skipa 2,skipb 3 輸出 reference of the node with valu...