您好,登錄后才能下訂單哦!
C語言數據結構旋轉鏈表的實現
實例:
給出鏈表1->2->3->4->5->null和k=2
返回4->5->1->2->3->null
分析:
感覺很直觀,直接把分割點找出來就行,記得k可能大于len,要取模
代碼:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: /** * @param head: the list * @param k: rotate to the right k places * @return: the list after rotation */ ListNode *rotateRight(ListNode *head, int k) { // write your code here if(head==NULL) return head; int len = 0; ListNode*temp = head; while(temp) { len++; temp = temp->next; } k%=len; if(k==0) return head; k = len-k; temp = head; while(k>1) { temp = temp->next; k--; } ListNode*newStart = temp->next; temp->next = NULL; temp = newStart; while(temp->next) temp = temp->next; temp->next = head; return newStart; } };
以上就是C語言數據結構旋轉鏈表的實現,如有疑問請留言或者到本站社區交流討論,本站關于數據結構的文章還有很多,希望大家搜索查閱,大家共同進步!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。