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

广告公司策划案上海seo网站优化

广告公司策划案,上海seo网站优化,网站建站的流程,wordpress jp判断一个链表是否为回文结构 题目链接:判断一个链表是否为回文结构 解题思路1:借助数组 遍历链表将值都放在数组中,再遍历数组元素,判断该数组是否为一个回文结构 代码如下: bool isPail(ListNode* head) {ListNod…

判断一个链表是否为回文结构

题目链接:判断一个链表是否为回文结构

解题思路1:借助数组

遍历链表将值都放在数组中,再遍历数组元素,判断该数组是否为一个回文结构

代码如下:

    bool isPail(ListNode* head) {ListNode* cur = head;vector<int> v;while(cur != nullptr){v.push_back(cur->val);cur = cur->next;}for(int i=0,j=v.size()-1; i<j; ++i,--j){if(v[i] != v[j]){return false;}}return true;}

解题思路2:反转部分链表进行对比

注意不能反转全部的链表,否则链表整个结构都改变了,再想和初始的链表进行对比的时候,发现最初的链表已经找不到了,原来的head的next为空了,原来的结构不复存在,所以强调反转部分链表

首先遍历链表,统计链表的长度
将长度除以2,从头节点开始走这么多的位置,找到中间位置
从中间位置开始,对链表进行反转
用双指针一个从头,一个从反转的部分链表的头开始依次比较对应位置的元素值是否相等

代码如下:

    ListNode* reverse(ListNode* head){ListNode* res = nullptr;ListNode* pre = nullptr;ListNode* cur = head;while(cur != nullptr){ListNode* temp = cur->next;if(cur->next == nullptr) res = cur;cur->next = pre;pre = cur;cur = temp;}return res;}bool isPail(ListNode* head) {ListNode* p = head;int n = 0;while(p != nullptr){p = p->next;n++;}n = n / 2;p = head;while(n > 0){p = p->next;n--;}p = reverse(p);ListNode* q = head;while(p != nullptr){if(p->val != q->val) return false;p = p->next;q = q->next;}return true;}

解题思路3:利用快慢指针找中点

慢指针每次走一个节点,快指针每次走两个节点,快指针到达链表尾的时候,慢指针刚好走到了链表中点
从中点的位置 ,开始将后半段链表反转
左右双指针,左指针从链表头开始往后遍历,右指针从链表尾往反转后的链表遍历,依次比较遇到的值

代码如下:

    ListNode* reverse(ListNode* head){ListNode* res = nullptr;ListNode* pre = nullptr;ListNode* cur = head;while(cur != nullptr){ListNode* temp = cur->next;if(cur->next == nullptr) res = cur;cur->next = pre;pre = cur;cur = temp;}return res;}bool isPail(ListNode* head) {ListNode* slow = head;ListNode* fast = head;//双指针找中点while(fast != nullptr && fast->next != nullptr){slow = slow->next;fast = fast->next->next;}//中点处反转slow = reverse(slow);fast = head;while(slow != nullptr){if(slow->val != fast->val) return false;fast = fast->next;slow = slow->next;} return true;}

解题思路4:栈逆序

将元素放到栈中,再依次取出栈顶元素和链表进行对比,如果都相同,那该链表就是回文链表

    bool isPail(ListNode* head) {stack<int> st;ListNode* cur = head;while(cur != nullptr){st.push(cur->val);cur = cur->next;}cur = head;while(!st.empty()){if(cur->val != st.top()) return false;st.pop();cur = cur->next;}return true;}
http://www.hrbkazy.com/news/41663.html

相关文章:

  • 网站备案网站建设方案书厦门seo怎么做
  • 网站的程序怎么做南昌seo全网营销
  • wordpress 上传图片 出错免费seo软件推荐
  • 黑彩网站自己可以做么seo搜索引擎优化工资薪酬
  • 番禺网站建设策划网络营销推广活动
  • 论坛网站怎么做最新的疫情最新消息
  • 公司网站建设是什么意思如何制作自己的网页
  • 游戏网站开发毕业论文开题报告西安做网站的公司
  • 宿迁市建设局网站维修基金郑州seo顾问外包
  • 做号网站吗软文世界
  • windows搭建wordpress博客重庆seo俱乐部联系方式
  • 廉政网站 建设需求北京培训机构
  • 便宜做网站公司市场推广方案范文
  • 怎么做系部网站首页网络推广推广培训
  • 赣州高端网站开发北京网络优化推广公司
  • 大庆建设网站首页seo优化主要做什么
  • 住房建设网站柳州友链购买网
  • 破解wordpress主题教程惠州seo关键词推广
  • html怎么做音乐网站500强企业seo服务商
  • 部落冲突做弊器网站北京软件开发公司
  • 做外贸免费的B2B网站南昌seo排名
  • 有哪些网站代做包装毕设seo怎么做最佳
  • 美容院网站制作上海网站推广优化
  • 网站公司未来计划ppt怎么做seo用什么论坛引流
  • 自适应网站建设模板中国国家培训网是真的吗
  • 北京婚恋网站哪家最好网站建设公司哪家好?该如何选择
  • 网站开发营销网站多少钱百度推广怎么做
  • 做赌博网站违法吗2020年十大关键词
  • 第一次和两个老头做网站黑龙seo网站优化
  • 做网站一般是什么工作企业策划方案怎么做