leetcode 61. Rotate List 旋轉連結串列
阿新 • • 發佈:2018-11-02
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* rotateRight(ListNode* head, int k) { if(head==nullptr) return head; int len=1; ListNode *newHead,*tail; newHead=tail=head; while(tail->next) { tail=tail->next; len++; } tail->next=head; //迴圈連結串列 if(k %= len) //k的合法性 ? { for(int i=0;i<len-k;++i) //尾節點是(len-k)節點(第一個節點是頭) tail=tail->next; //得到尾節點 } newHead=tail->next; //迴圈中尾節點的下一個 tail->next=nullptr; //斷開連結串列 return newHead; } };