做平面设计的网站,网站制作推荐,网站开源源码,网站英文域名是什么题目
给你一个链表的头节点 head #xff0c;旋转链表#xff0c;将链表每个节点向右移动 k 个位置。
示例 1#xff1a; 输入#xff1a;head [1,2,3,4,5], k 2输出#xff1a;[4,5,1,2,3]
示例 2#xff1a; 输入#xff1a;head [0,1,2], k 4输出#xff1a;…题目
给你一个链表的头节点 head 旋转链表将链表每个节点向右移动 k 个位置。
示例 1 输入head [1,2,3,4,5], k 2输出[4,5,1,2,3]
示例 2 输入head [0,1,2], k 4输出[2,0,1]
思路
闭合为环找到新链表的最后一个节点再断开形成新的链表。
代码实现 struct ListNode {int val;struct ListNode *next;};struct ListNode* rotateRight(struct ListNode* head, int k) {if(headNULL)return NULL;struct ListNode* phead;int len1;while(p-next!NULL){len;pp-next;}p-nexthead;for(int i0;ilen-(k%len);i){pp-next;headhead-next;}p-nextNULL;return head;
}