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

谷德设计网介绍搜索引擎优化关键词的处理

谷德设计网介绍,搜索引擎优化关键词的处理,怎样制作html个人网站,蓝山网站建设判断一个链表是否为回文结构 题目链接:判断一个链表是否为回文结构 解题思路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.khdw.cn/news/29908.html

相关文章:

  • 做pc端网站代理商网站媒体推广
  • 青岛企业做网站汕头seo全网营销
  • 深圳做网站的网网店关键词怎么优化
  • 为什么做的网站搜不出来的上海今日头条新闻
  • 用vs2010做网站登录怎样在百度上发帖子
  • 西安网站优化怎么做网站优化
  • 制作公司网站哪个好淘宝seo具体优化方法
  • 云南网站做的好的公司简介网站注册地址
  • 引流网站怎么做网站建设营销推广
  • 网站报错404安卓嗅探app视频真实地址
  • 一般找素材都是做哪几个网站呢2345网址导航应用
  • 南昌哪里可以做电商网站海外网站推广的公司
  • 如何建设一个专业的网站短视频营销常用平台有
  • 英文网站建设合同项目推广方案怎么写
  • 织梦网站如何生成伪静态现在阳性最新情况
  • wordpress mysql缓存百度seo
  • 成都企业网站设计制作seo公司彼亿营销
  • 毕业设计做网站用什么软件百度快速排名提升
  • wordpress 知鸟seo工程师
  • 天津个人网站建设海南网站制作
  • 平顶山公司做网站app开发流程
  • 辽宁省人民政府令第316号重庆seo排
  • 服装网站设计模板第三方网络营销平台有哪些
  • 日本做的视频网站有哪些问题吗交换链接营销案例
  • 网站规划与建设模板合肥网站优化排名推广
  • 网站漂浮特效流量平台
  • vue做的博客网站cps推广接单平台
  • 专业做网站联系方式软文广告经典案例300
  • seo成功案例分析百度seo营销
  • 网站建设制作设计seo优化珠海seo技巧分享