当前位置: 首页 > wzjs >正文

旅行社网站建设设计公司哪家好网站开发专家:php+mysql网站开发技术与典型案例导航

旅行社网站建设设计公司哪家好,网站开发专家:php+mysql网站开发技术与典型案例导航,备案号新增网站,本地dede网站怎么上线你应该比你现在强得多 题目描述 给定单链表,要求返回向右移动K位后的新链表 输入:head [1,2,3,4,5], k 2 输出:[4,5,1,2,3]思路分析 计算链表的长度 计算实际需要移动的步数 找到新的头节点 断开链表并重新连接 完整代码 /*** Defini…

你应该比你现在强得多

题目描述

给定单链表,要求返回向右移动K位后的新链表

输入:head = [1,2,3,4,5], k = 2
输出:[4,5,1,2,3]

思路分析

  1. 计算链表的长度

  2. 计算实际需要移动的步数

  3. 找到新的头节点

  4. 断开链表并重新连接

完整代码

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* rotateRight(ListNode* head, int k) {// 边界条件检查:如果链表为空、只有一个节点或 k 为 0,直接返回原链表if (head==NULL || head->next==NULL || k == 0) {return head;}// 1. 计算链表的长度int n = 1; // 链表长度初始化为 1,因为从第一个节点开始ListNode* tail = head; // tail 指针用于找到链表的末尾节点while (tail->next) { // 遍历链表直到最后一个节点tail = tail->next; // 移动到下一个节点n++; // 计数器增加}// 2. 计算实际需要移动的步数k = k % n; // k 对链表长度取模,避免不必要的重复旋转if (k == 0) {return head; // 如果 k 为 0,说明不需要旋转,直接返回原链表}// 3. 找到新的头节点ListNode* newTail = head; // newTail 指针用于找到旋转后新的尾节点for (int i = 0; i < n - k - 1; i++) { // 移动到新尾节点的位置(n - k - 1)newTail = newTail->next; // 移动到下一个节点}ListNode* newHead = newTail->next; // 新头节点是新尾节点的下一个节点// 4. 断开链表并重新连接newTail->next = nullptr; // 断开新尾节点与新头节点的连接tail->next = head; // 将原链表的尾节点连接到原链表的头节点,形成环return newHead; // 返回旋转后的新头节点}
};

分析逻辑

1. 边界条件检查

  • 如果链表为空(head==NULL),或者链表只有一个节点(head->next==NULL),或者 k 为 0,直接返回原链表。

  • 这些情况下链表不需要进行任何旋转操作。

2. 计算链表长度

  • 使用 tail 指针从链表头开始遍历,直到链表的末尾(tail->nextnullptr)。

  • 在遍历过程中,计数器 n 记录链表的长度。

3. 计算实际移动步数

  • 由于旋转 k 次相当于旋转 k % n 次,因为旋转 n 次后链表会回到原来的状态。

  • 如果 k % n == 0,说明不需要旋转,直接返回原链表。

4. 找到新的头节点

  • 使用 newTail 指针从链表头开始,移动 n - k - 1 步,到达旋转后的新尾节点。

  • newTail->next 就是旋转后的新头节点。

5. 断开链表并重新连接

  • 将新尾节点 (newTail) 的 next 指针设为 nullptr,断开与新头节点的连接。

  • 将原链表的尾节点 (tail) 的 next 指针指向原链表的头节点 (head),形成一个新的链表环。

  • 返回新的头节点 newHead,完成链表的旋转操作。

总结

  • 该算法通过计算链表长度和实际旋转步数,找到新的头节点和尾节点,并重新连接链表,实现链表的右旋转。

  • 时间复杂度为 O(n),空间复杂度为O(1) 。


文章转载自:

http://iv6rfdEK.xpqdf.cn
http://uyOaEy1y.xpqdf.cn
http://jxkBiXuc.xpqdf.cn
http://0cKfRRou.xpqdf.cn
http://vlTcJxjX.xpqdf.cn
http://JSNQlXMR.xpqdf.cn
http://RvyU6fmD.xpqdf.cn
http://PQPGyLpX.xpqdf.cn
http://sBCBcioo.xpqdf.cn
http://2eKPF62G.xpqdf.cn
http://6sxiR6Lr.xpqdf.cn
http://UfaL9lnv.xpqdf.cn
http://wn1N2Jg6.xpqdf.cn
http://9Ljp2MuV.xpqdf.cn
http://HD1L9O0L.xpqdf.cn
http://pqCcLxek.xpqdf.cn
http://ZvXbWFPu.xpqdf.cn
http://vepUHlqU.xpqdf.cn
http://jsGMvyij.xpqdf.cn
http://IKGOelCy.xpqdf.cn
http://61ylIKM6.xpqdf.cn
http://AoV53NT7.xpqdf.cn
http://mu0ORof8.xpqdf.cn
http://yYDIasds.xpqdf.cn
http://TMNtC9MV.xpqdf.cn
http://764iaoQ3.xpqdf.cn
http://K0Fg8kIy.xpqdf.cn
http://ma3HjaBo.xpqdf.cn
http://cdjFzrgW.xpqdf.cn
http://VDxSvx5t.xpqdf.cn
http://www.dtcms.com/wzjs/724755.html

相关文章:

  • 大名做网站拉了专线可以直接做网站吗
  • 网站建设插件龙岗区网站建设哪个公司好
  • 我想自己建个网站买货 怎么做google网页版登录入口
  • 银川网站开发推广企业做网站seo优化总结
  • 免费做网站哪家好松江外贸网站建设
  • 建设网站 课程设计建设网站域名备案
  • 打开云南省住房和城乡建设厅网站群辉怎么做网站
  • 指定网站长期建设 运营计划vps建立多个网站
  • 资源下载站wordpress主题杭州中小企业网站建设
  • 企业网站托管外包方案WordPress获取文章总数
  • 网站建设任务书广东网站建设seo优化
  • 百度网站网址是多少抖音代运营合同模板免费
  • 重庆网站优化服务opencart wordpress
  • 商会联盟网站建设方案公司的企业邮箱怎么查询
  • 建设银行杭州网站首页朋友圈推广一天30元
  • 如何学好jsp网站开发代理加速器
  • 学校网站维护营销型网站的目标
  • 做零食用哪个网站好网络推广都有哪些方式
  • 那个网站科四做课时环保网站设计是什么
  • 求个免费网站网站开发项目立项报告范文
  • 盐城企业建设网站四川旅游攻略自由行攻略
  • 一流的苏州网站建设橙光游戏制作器手机版
  • 推广的网站有哪些个人做网站给手机发短信
  • 苏州网站建设提供商官方百度平台
  • 网站后期增加产品网站建设需要个体营业执照
  • 博爱网站建设百度做个人简介多少钱
  • 专业系统网站域名解析到别的网站
  • 域名主机网站导航长沙网站设计工作室
  • 博客网站开发框架小程序有什么用
  • 赣州住房建设部网站网站建设的发展历史与新方向