C语言数据结构旋转链表的实现
发布时间:2020-12-25 00:29:34 所属栏目:经验 来源:网络整理
导读: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
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语言数据结构旋转链表的实现,如有疑问请留言或者到本站社区交流讨论,本站关于数据结构的文章还有很多,希望大家搜索查阅,大家共同进步! (编辑:阜新站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |