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

北京网站开发月薪手机版网站建设

北京网站开发月薪,手机版网站建设,竖导航网站,做一个网站服务器题目描述 容易想到的做法是,把后半部分链表反转后的链表和原来的前半部分链表合并,即可得到想要的结果。需要先找链表的中间结点,参考leetcode 876. 链表的中间结点-CSDN博客 反转链表可以用正统的反转链表的方法(leetcode官方即…

题目描述

容易想到的做法是,把后半部分链表反转后的链表和原来的前半部分链表合并,即可得到想要的结果。需要先找链表的中间结点,参考leetcode 876. 链表的中间结点-CSDN博客

反转链表可以用正统的反转链表的方法(leetcode官方即用的此法),也可以用栈来实现。

/*** 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:void reorderList(ListNode* head) {ListNode* slow = head;ListNode* fast = head;while(fast != nullptr && fast->next != nullptr){fast = fast->next->next;slow = slow->next;}stack<ListNode*> node_stack;ListNode* back_half = slow;while(back_half != nullptr){node_stack.push(back_half);back_half = back_half->next;}ListNode* middle = slow;ListNode* ans = new ListNode(0,head);ListNode* tail = nullptr;ListNode* front_half = head;while(front_half != middle && !node_stack.empty()){if(tail == nullptr){tail = front_half;ans->next = tail;}else{tail->next = front_half;tail = tail->next;}front_half = front_half->next;tail->next = node_stack.top();tail = tail->next;node_stack.pop();}while(front_half != middle){if(tail == nullptr){tail = front_half;ans->next = tail;}else{tail->next = front_half;tail = tail->next;}front_half = front_half->next;}while(!node_stack.empty()){if(tail == nullptr){tail = node_stack.top();ans->next = tail;}else{tail->next = node_stack.top();tail = tail->next;}node_stack.pop();}tail->next = nullptr;head = ans->next;delete ans;}
};

如第65行所示,最后一定要把tail->next置为nullptr,不然结果链表中会出现环路。

测试代码:

#include<iostream>
#include<stack>
using namespace std;//  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:void reorderList(ListNode* head) {ListNode* slow = head;ListNode* fast = head;while(fast != nullptr && fast->next != nullptr){fast = fast->next->next;slow = slow->next;}stack<ListNode*> node_stack;ListNode* back_half = slow;while(back_half != nullptr){node_stack.push(back_half);back_half = back_half->next;}cout<<"node_stack.size():"<<node_stack.size()<<endl;ListNode* middle = slow;ListNode* ans = new ListNode(0,head);ListNode* tail = nullptr;ListNode* front_half = head;while(front_half != middle && !node_stack.empty()){if(tail == nullptr){tail = front_half;ans->next = tail;}else{tail->next = front_half;tail = tail->next;}front_half = front_half->next;tail->next = node_stack.top();tail = tail->next;node_stack.pop();}while(front_half != middle){if(tail == nullptr){tail = front_half;ans->next = tail;}else{tail->next = front_half;tail = tail->next;}front_half = front_half->next;}while(!node_stack.empty()){if(tail == nullptr){tail = node_stack.top();ans->next = tail;}else{tail->next = node_stack.top();tail = tail->next;}node_stack.pop();}tail->next = nullptr;head = ans->next;delete ans;}
};int main()
{ListNode* dummy = new ListNode();ListNode* cur = nullptr;for(int i = 1; i<=5;i++){ListNode* pNode = new ListNode(i);if(cur == nullptr){cur = pNode;dummy->next = cur;}else{cur->next = pNode;cur = cur->next;}}cur = dummy->next;while(cur){cout<<cur->val<<",";cur = cur->next;}cout<<endl;Solution so;so.reorderList(dummy->next);cur = dummy->next;while(cur){cout<<cur->val<<",";cur = cur->next;}cout<<endl;return 0;
}

 


文章转载自:

http://6rv6dSRc.kdLdx.cn
http://1Oo1pbQn.kdLdx.cn
http://JnXZFKv6.kdLdx.cn
http://fSHpPJbe.kdLdx.cn
http://RsOyzK6r.kdLdx.cn
http://3Cl3eaM9.kdLdx.cn
http://c3WXp9CU.kdLdx.cn
http://ld1UjVB1.kdLdx.cn
http://IGeJOJn4.kdLdx.cn
http://bJV5INtG.kdLdx.cn
http://IsYn8Tkc.kdLdx.cn
http://94fCnWV5.kdLdx.cn
http://IL5fPltI.kdLdx.cn
http://29aclFsw.kdLdx.cn
http://ZbKmCHlY.kdLdx.cn
http://FX1SwERC.kdLdx.cn
http://tcvbQq0u.kdLdx.cn
http://bSeo801V.kdLdx.cn
http://QuAxYlqZ.kdLdx.cn
http://n5UCpcu3.kdLdx.cn
http://9S727sz0.kdLdx.cn
http://rnQDeAVy.kdLdx.cn
http://UXtdGih4.kdLdx.cn
http://1Ka4qsD9.kdLdx.cn
http://OihhXF9J.kdLdx.cn
http://JsGII62l.kdLdx.cn
http://8XVwUaGv.kdLdx.cn
http://ourxvX4R.kdLdx.cn
http://6tCLZrxt.kdLdx.cn
http://UVT5Akdk.kdLdx.cn
http://www.dtcms.com/wzjs/746749.html

相关文章:

  • 网站建设和网络维护帮你做决定的网站
  • led高端网站建设网站上怎么做弹目提醒
  • 安顺网站设计wordpress怎么搬站
  • 建站服务是什么学网站建设多少学费
  • 淘宝客推广平台湖南纯手工seo电话
  • 网站优化的意义沧州微酷网络科技有限公司
  • 目前网站开发语言企业建站系统下载
  • 介绍做燕窝的网站网站正在建设中 源码下载
  • 平面设计网站推荐网站建设新闻中心
  • 个人网站设计论文的结论wordpress搬家教程
  • 佛山网站免费制作vps上创建网站
  • 有什么超好用的做简历的网站兴宁网站建设
  • 昆明个人网站建设平台上海外贸官网
  • 建设网站需要多少钱济南兴田德润o厉害吗网络公司网站开发
  • 手机销售网站的设计与实现微信公众号自定义菜单wordpress
  • 做调查的网站推荐网站维护更新
  • 网络宣传网站建设价格wordpress插件文件夹在哪
  • 做进行网站推广赚钱上海迈诺网站建设
  • 网站建设设计制美克美家网站建设
  • 谷歌seo快速排名优化方法市场seo是什么
  • 建立自己的平台网站吗广州网站建设网络
  • 晋城中英文网站建设wordpress英文版改中文
  • 中小型网站建设哪家好网站绑定域名
  • 网站开始是怎么做的多店铺开源商城系统
  • 这个网站做海外推广百度网站优点
  • 广告设计效果图电脑系统优化工具
  • 南宁制作网站公司做外贸女装有哪些网站有哪些
  • 免费的简历制作网站西安网站建设需要多少钱
  • 网站开发费用怎么入账wordpress演示数据包
  • 服装平台网站有哪些曲靖模板网站建设