騰訊精選練習題34 旋轉鍊錶

2021-09-19 03:03:46 字數 1011 閱讀 7590

給定乙個鍊錶,旋轉鍊錶,將鍊錶每個節點向右移動 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 步: 4->5->1->2->3->null

示例 2:

輸入: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...