C語言數(shù)據(jù)結構旋轉鏈表的實現(xiàn)
專業(yè)成都網(wǎng)站建設公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設,五站合一網(wǎng)站設計制作,服務好的網(wǎng)站設計公司,網(wǎng)站設計、網(wǎng)站建設負責任的成都網(wǎng)站制作公司!
實例:
給出鏈表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語言數(shù)據(jù)結構旋轉鏈表的實現(xiàn),如有疑問請留言或者到本站社區(qū)交流討論,本站關于數(shù)據(jù)結構的文章還有很多,希望大家搜索查閱,大家共同進步!