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

杭州网站建设外包免费的网站推广

杭州网站建设外包,免费的网站推广,wordpress alt 空,网站交互技术每日一题(LeetCode)----链表–两两交换链表中的节点 1.题目#xff08;[24. 两两交换链表中的节点](https://leetcode.cn/problems/spiral-matrix/)#xff09; 给你一个链表#xff0c;两两交换其中相邻的节点#xff0c;并返回交换后链表的头节点。你必须在不修改节点内…每日一题(LeetCode)----链表–两两交换链表中的节点 1.题目[24. 两两交换链表中的节点](https://leetcode.cn/problems/spiral-matrix/) 给你一个链表两两交换其中相邻的节点并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题即只能进行节点交换。 示例 1 输入head [1,2,3,4] 输出[2,1,4,3] 示例 2 输入head [] 输出[] 示例 3 输入head [1] 输出[1] 提示 链表中节点的数目在范围 [0, 100] 内 0 Node.val 100 2.解题思路 思路一 先拆分成两个链表之后再进行合并 1.拆分 我们遍历一遍原链表通过下标的奇偶拆分成两个链表 2.合并 (1)我们以通过下标为奇数得到的链表的表头作为新链表的表头然后用两个指针变量交叉遍历两个链表交叉遍历就是一个链表向后遍历了一个节点之后就换另一个链表向后遍历一个节点这样循环直到两个链表都遍历完成结束 (2)将遍历到的节点放到新链表中即可(这里说是放到新链表中实际上只是改变了两个链表中的指针指向) (3)最后我们返回这个新链表的表头 注意如果给出的链表没有节点或者只有一个节点我们不需要进行操作直接返回原有链表即可 思路二迭代法 1.我们创建一个虚拟头节点方便我们进行迭代操作如下图 2.遍历链表实现两两交换 如果当前操作节点的下一个和当前操作节点的下一个的下一个的下一个同时不为空进行下面操作 先保存一下当前操作节点的下一个节点和下一个的下一个节点为临时节点一和临时节点二 第一步当前操作节点的下一个指向操作开始的节点的下一个的下一个 第二步当前操作节点的下一个的下一个指向临时节点一 第三步当前操作节点的下一个的下一个的下一个指向临时节点二 第四步下一次操作节点为当前操作节点的下一个的下一个继续进行操作 看下图进行理解 思路三递归法 递归的终止条件是链表中没有节点或者链表中只有一个节点此时无法进行交换。 如果链表中至少有两个节点则在两两交换链表中的节点之后原始链表的头节点变成新的链表的第二个节点原始链表的第二个节点变成新的链表的头节点。链表中的其余节点的两两交换可以递归地实现。在对链表中的其余节点递归地两两交换之后更新节点之间的指针关系即可完成整个链表的两两交换。 3.写出代码 思路一的代码 class Solution { public:ListNode* swapPairs(ListNode* head) {//如果链表中没有元素那么返回链表即可if(headnullptr||head-nextnullptr){return head;}//拆成两个链表ListNode* head1head;ListNode* head2head-next;ListNode* Temp1head1;ListNode* Temp2head2;//进行拆分int flag0;while(Temp1Temp2){if(flag%20){Temp1-nextTemp2-next;Temp1Temp1-next;flag;}else{Temp2-nextTemp1-next;Temp2Temp2-next;flag;}}Temp1head1;Temp2head2;flag0;while(Temp1Temp2){if(flag%20){ListNode* delay2Temp2-next;Temp2-nextTemp1;Temp2delay2;flag;}else{ListNode* delay1Temp1-next;Temp1-nextTemp2;Temp1delay1;flag;}}return head2;} };思路二的代码 class Solution { public:ListNode* swapPairs(ListNode* head) {ListNode* dummyheadnew ListNode(0);dummyhead-nexthead;ListNode* curdummyhead;while(cur-next!nullptrcur-next-next!nullptr){ListNode* temp1cur-next;ListNode* temp2cur-next-next-next;cur-nextcur-next-next;cur-next-nexttemp1;cur-next-next-nexttemp2;curcur-next-next;}return dummyhead-next;} };思路三的代码 class Solution { public:ListNode* swapPairs(ListNode* head) {if(headnullptr||head-nextnullptr){return head;}ListNode* newHeadhead-next;head-nextswapPairs(newHead-next);newHead-nexthead;return newHead;} };
http://www.pierceye.com/news/41146/

相关文章:

  • 宁波公司建设网站乐山市规划和建设局门户网站
  • 家具企业网站建设实例讲解html5制作一个网站
  • 青岛苍南网站建设邵阳最新新闻
  • wordpress 导入导出sem seo 区别
  • 中和华丰建设有限责任公司网站综合办公oa系统
  • 沈阳康平志诚建设集团网站管理平台登录界面
  • 登录门户网站男女做污的网站
  • wordpress 友情连接关键词seo报价
  • 10g空间网站做视频网站培训总结精辟句子
  • 上海门户网站怎么登录jrs直播网站谁做的
  • 三明网站建设公司济南企业自助建站
  • 外贸网络营销广州优化公司推广
  • 网站建设get你莱西做网站的
  • 大连开发区二手房最新房源长沙谷歌seo
  • 企业网站推广哪个公司好门厂家网站建设
  • 河南企业网站制作wordpress教程视频 下载
  • 莱州网站建设服务陕西省交通建设集团西长分公司网站
  • 网站建设是怎么一回事来必力wordpress
  • 网站开发 python上海cms建站
  • php网站开发人员网站规划建设实训报告书
  • 要给公司做一个网站怎么做最近在线直播免费观看
  • 襄阳 网站建设wordpress 分类别名
  • 网站登录账号密码保存成都设计咨询集团有限公司
  • 手机设计网站公司手机建网站需要多少钱
  • 南宁会员网站制作购物中心招商信息发布平台
  • 宁波专业做网站公司国内做视频课程的网站有哪些
  • 做淘宝客网站骗钱阿里云安装网站
  • 上海微信网站建设公司国外 wordpress
  • 网站服务器用什么配置现在的网站怎样做推广
  • 网站运营方案怎么写?做爰全过程免费的视网站